diff --git a/crates/oa-desktop/src/app.rs b/crates/oa-desktop/src/app.rs index 2e65a5be..7da73652 100644 --- a/crates/oa-desktop/src/app.rs +++ b/crates/oa-desktop/src/app.rs @@ -6,6 +6,8 @@ mod architecture_authoring_tests; mod behavior_removal_tests; mod checkpoints; #[cfg(test)] +mod context_help_tests; +#[cfg(test)] mod diagram_focus_tests; pub(crate) mod diagram_removal; #[cfg(test)] @@ -376,6 +378,10 @@ pub enum Message { ExactStrings(bool), Page(Page), Guide(crate::guide::Event), + ContextHelp(crate::guide::Topic), + CloseContextHelp, + ContextHelpScroll(crate::guide::ContextScroll), + Help, Traceability(crate::views::traceability::Event), ReviewLayerTraces, Behavior(crate::behavior::Event), @@ -521,6 +527,7 @@ pub struct App { /// Home resumes this page; explicit Architecture navigation remains separate. last_workspace_page: Page, pub guide: crate::guide::State, + pub context_help: bool, pub traceability: crate::views::traceability::State, pub behavior: crate::behavior::State, pub data_state: crate::data_view::State, @@ -643,6 +650,7 @@ impl App { page: Page::Diagram, last_workspace_page: Page::Diagram, guide: crate::guide::State::default(), + context_help: false, traceability: Default::default(), behavior: Default::default(), data_state: Default::default(), @@ -1294,6 +1302,11 @@ impl App { iced::time::every(std::time::Duration::from_secs(10)).map(|_| Message::CheckpointTick), window::close_requests().map(|id| Message::Request(Pending::Close(id))), window::resize_events().map(|(_, size)| Message::WindowResized(size)), + if self.context_help { + iced::event::listen_with(crate::guide::context_scroll_key) + } else { + Subscription::none() + }, iced::event::listen_with(|event, _, _| { matches!( event, @@ -1320,7 +1333,7 @@ impl App { return Some(Message::Escape); } if key == keyboard::Key::Named(keyboard::key::Named::F1) { - return Some(Message::Page(Page::Guide)); + return Some(Message::Help); } if key == keyboard::Key::Named(keyboard::key::Named::F3) { return Some(Message::SourceNavigation( @@ -1348,6 +1361,55 @@ impl App { ]) } pub fn update(&mut self, message: Message) -> Task { + if let Message::ContextHelpScroll(scroll) = message { + return if self.context_help { + crate::guide::context_scroll_task(scroll) + } else { + Task::none() + }; + } + // Help owns user input before any canvas/reference fast path can act. + // Passive results may finish; they retain their normal lifetime checks. + if self.context_help + && !matches!( + message, + Message::Guide(_) + | Message::CloseContextHelp + | Message::Escape + | Message::Request(Pending::Close(_)) + | Message::CheckpointWritten(..) + | Message::CheckpointTick + | Message::CheckpointLoaded(..) + | Message::WindowResized(_) + | Message::CanvasResized(_) + | Message::DiagramRevealViewport(..) + | Message::SourceViewport(_) + | Message::Lint(_) + | Message::Linted(..) + | Message::Saved(_) + | Message::Hosted(crate::hosted::Event::Completed(..)) + | Message::Loaded(_) + | Message::IncludesLoaded(..) + | Message::SavePath(_) + | Message::SourceRecovered(_) + | Message::Exported(_) + | Message::SourceSymbolsReady(_) + | Message::SourceRenameReady(_) + | Message::DiagramUsagesReady(_) + | Message::ScenarioCanvas( + behavior::scenario::CanvasEvent::Scrolled(..) + | behavior::scenario::CanvasEvent::Restored(..) + | behavior::scenario::CanvasEvent::Viewport(..) + ) + | Message::TopologyCanvas( + behavior::topology::CanvasEvent::Scrolled(..) + | behavior::topology::CanvasEvent::Viewport(..) + ) + | Message::StateDiagram(behavior::state_edit::Event::Viewport(..)) + ) + { + return Task::none(); + } let preview_read_only = self.process_preview_primary().is_some(); let selection_boundary = self.multiselect_boundary(); // Reject delayed gestures before they can retire newer input ownership. @@ -1900,6 +1962,10 @@ impl App { message, Message::Escape | Message::Request(Pending::Close(_)) ) { + if self.context_help { + self.context_help = false; + return Task::none(); + } if self.hosted.visible { self.hosted.visible = false; return Task::none(); @@ -2091,6 +2157,7 @@ impl App { } pub(crate) fn scenario_focus_owner(&self) -> Option { if self.busy + || self.context_help || self.hosted.visible || self.workflow.is_some() || self.architecture.is_some() @@ -2787,6 +2854,35 @@ impl App { ); } } + Message::ContextHelp(topic) => { + self.guide.update(crate::guide::Event::Topic(topic)); + self.context_help = true; + return iced::widget::operation::snap_to( + crate::guide::ARTICLE_SCROLL_ID, + iced::widget::scrollable::RelativeOffset::START, + ); + } + Message::CloseContextHelp => { + self.context_help = false; + } + Message::ContextHelpScroll(_) => {} + Message::Help => { + let topic = match self.page { + Page::Diagram => Some(crate::guide::Topic::Nesting), + Page::Behavior => self.behavior.active_owner.and_then(|id| { + self.project() + .elements + .get(&id) + .map(|element| match element.kind() { + Kind::StateMachine => crate::guide::Topic::States, + Kind::Scenario => crate::guide::Topic::Scenarios, + _ => crate::guide::Topic::Chains, + }) + }), + _ => None, + }; + return self.update(topic.map_or(Message::Page(Page::Guide), Message::ContextHelp)); + } Message::ExactStrings(enabled) => { if let Some(d) = &mut self.draft { match d.set_exact(enabled) { diff --git a/crates/oa-desktop/src/app/allocation_drag.rs b/crates/oa-desktop/src/app/allocation_drag.rs index b6c32949..e20639f0 100644 --- a/crates/oa-desktop/src/app/allocation_drag.rs +++ b/crates/oa-desktop/src/app/allocation_drag.rs @@ -16,6 +16,7 @@ use std::{ pub const FINISH_EDIT: &str = "Finish or cancel the current edit before selecting or moving elements."; +const ARRANGE_ARMED: &str = "Arrange next drag armed · presentation only · Esc cancels"; #[derive(Debug, Clone, Copy, PartialEq)] pub struct Stamp { @@ -635,6 +636,7 @@ impl App { } pub(crate) fn allocation_input_owner(&self) -> bool { self.page == Page::Diagram + && !self.context_help && self .active_diagram .and_then(|id| self.project().diagrams.get(&id)) @@ -699,7 +701,12 @@ impl App { | Message::DiagramUsagesReady(_) | Message::DiagramRevealViewport(..) ) { + let clear_armed_status = + self.allocation_drag.arrange_next && self.status == ARRANGE_ARMED; self.allocation_drag.retire(); + if clear_armed_status { + self.status = "Arrange cancelled".into(); + } } } pub(super) fn allocation_boundary(&self) -> impl PartialEq + use<> { @@ -841,8 +848,7 @@ impl App { self.allocation_drag.retire(); if self.allocation_drag_clean() { self.allocation_drag.arrange_next = true; - self.status = - "Arrange next drag armed · presentation only · Esc cancels".into(); + self.status = ARRANGE_ARMED.into(); } else { self.status = FINISH_EDIT.into(); } diff --git a/crates/oa-desktop/src/app/allocation_drag_full_tree_tests.rs b/crates/oa-desktop/src/app/allocation_drag_full_tree_tests.rs index e445ac69..2da88ca8 100644 --- a/crates/oa-desktop/src/app/allocation_drag_full_tree_tests.rs +++ b/crates/oa-desktop/src/app/allocation_drag_full_tree_tests.rs @@ -190,6 +190,7 @@ async fn actual_keyboard_arrange_shortcut_consumes_once_escape_cancels_and_dirty ) .await; assert!(!f.app.allocation_drag.arrange_next); + assert_eq!(f.app.status, "Arrange cancelled"); mounted .batch( &mut f.app, diff --git a/crates/oa-desktop/src/app/context_help_tests.rs b/crates/oa-desktop/src/app/context_help_tests.rs new file mode 100644 index 00000000..154957a0 --- /dev/null +++ b/crates/oa-desktop/src/app/context_help_tests.rs @@ -0,0 +1,723 @@ +//! Context help is a reading overlay, not a workspace navigation or edit. +use super::*; +use crate::diagram_usage::Target; +use crate::guide::Topic; + +fn send(app: &mut App, message: Message) { + // Do not poll I/O tasks: exercise the same admission boundary as the UI. + let _ = app.update(message); +} + +fn architecture() -> (App, Id, Id, Id) { + let mut project = Project::empty(); + let a = project + .add_element(Kind::Function, Layer::Sa, "Send", None) + .unwrap(); + let b = project + .add_element(Kind::Function, Layer::Sa, "Receive", None) + .unwrap(); + let diagram = project.ensure_diagram(Layer::Sa); + project.diagrams.get_mut(&diagram).unwrap().projection = ProjectionKind::FunctionalDataflow; + let a = project.place(diagram, a, Position { x: 20., y: 20. }); + let b = project.place(diagram, b, Position { x: 400., y: 20. }); + let mut app = App::with_project(project); + app.page = Page::Diagram; + app.layer = Layer::Sa; + app.active_diagram = Some(diagram); + app.selected = diagram; + app.refresh_draft(); + app.reconcile_multiselect(); + (app, diagram, a, b) +} + +fn choose(app: &mut App, placement: Id, choice: multiselect::Choice) { + let context = app.multiselect_context().unwrap(); + send( + app, + Message::DiagramSelection(multiselect::Event::Choose( + context, + Target::Placement(placement), + choice, + )), + ); +} + +#[test] +fn context_help_preserves_group_property_draft_camera_and_model() { + let (mut app, diagram, a, b) = architecture(); + choose(&mut app, a, multiselect::Choice::Replace); + choose(&mut app, b, multiselect::Choice::Toggle); + send( + &mut app, + Message::Field("/name".into(), "Uncommitted name 雨".into()), + ); + assert!(app.draft_dirty()); + app.zoom = 0.73; + app.pan = iced::Vector::new(31., -57.); + let selected = app.selected; + let selection = app.multiselect_snapshot().unwrap().targets().to_vec(); + assert_eq!(selection.len(), 2); + let draft = serde_json::to_value(app.draft.as_ref().unwrap().recovery_snapshot()).unwrap(); + let before = app.document.snapshot(); + let camera = (app.zoom, app.pan); + + send(&mut app, Message::ContextHelp(Topic::Nesting)); + assert!(app.context_help); + for message in [ + Message::Page(Page::Catalog), + Message::Select(diagram), + Message::Apply, + Message::RevertProperties, + Message::Undo, + Message::Delete, + Message::Field("/name".into(), "Background mutation".into()), + ] { + send(&mut app, message); + } + assert!(app.context_help); + send( + &mut app, + Message::Guide(crate::guide::Event::Topic(Topic::Exchanges)), + ); + assert_eq!(app.guide.topic, Topic::Exchanges); + send(&mut app, Message::CloseContextHelp); + + assert!(!app.context_help); + assert_eq!(app.page, Page::Diagram); + assert_eq!(app.active_diagram, Some(diagram)); + assert_eq!(app.selected, selected); + assert_eq!( + app.multiselect_snapshot().unwrap().targets(), + selection.as_slice() + ); + assert_eq!((app.zoom, app.pan), camera); + assert_eq!( + serde_json::to_value(app.draft.as_ref().unwrap().recovery_snapshot()).unwrap(), + draft + ); + assert!(Arc::ptr_eq(&before, &app.document.snapshot())); + assert!(!app.document.can_undo()); +} + +#[test] +fn context_help_escape_preserves_pending_behavior_form_and_blocks_submit() { + use crate::behavior::states; + let mut project = Project::empty(); + let system = project + .add_element(Kind::System, Layer::Sa, "System", None) + .unwrap(); + let machine = project + .add_element(Kind::StateMachine, Layer::Sa, "Modes", Some(system)) + .unwrap(); + let region = project + .add_element(Kind::Region, Layer::Sa, "Main", Some(machine)) + .unwrap(); + let state = project + .add_element(Kind::State, Layer::Sa, "Ready", Some(region)) + .unwrap(); + let mut app = App::with_project(project); + send(&mut app, Message::Select(state)); + send(&mut app, Message::Page(Page::Behavior)); + send( + &mut app, + Message::Behavior(behavior::Event::States(states::Event::Start( + machine, + states::Tool::Transition, + state, + ))), + ); + send( + &mut app, + Message::Behavior(behavior::Event::States(states::Event::Name( + "Pending transition 雨".into(), + ))), + ); + assert!(app.behavior.has_pending()); + let draft = app.behavior.recovery_snapshot().unwrap(); + let before = app.document.snapshot(); + let selected = app.selected; + send(&mut app, Message::Help); + assert!(app.context_help); + assert_eq!(app.guide.topic, Topic::States); + for event in [ + states::Event::Cancel, + states::Event::Submit, + states::Event::Name("Lost".into()), + ] { + send(&mut app, Message::Behavior(behavior::Event::States(event))); + } + send(&mut app, Message::Page(Page::Catalog)); + send(&mut app, Message::Escape); + assert!(!app.context_help); + assert_eq!(app.page, Page::Behavior); + assert_eq!(app.selected, selected); + assert_eq!(app.behavior.active_owner, Some(machine)); + assert!(app.behavior.has_pending()); + assert_eq!(app.behavior.recovery_snapshot().unwrap(), draft); + assert!(Arc::ptr_eq(&before, &app.document.snapshot())); +} + +#[test] +fn context_help_retains_source_draft_and_rejects_background_source_input() { + let (mut app, diagram, _, _) = architecture(); + send(&mut app, Message::Page(Page::Text)); + send( + &mut app, + Message::SourceEdit(text_editor::Action::SelectAll), + ); + send( + &mut app, + Message::SourceEdit(text_editor::Action::Edit(text_editor::Edit::Paste( + Arc::new("invalid unfinished source 雨".into()), + ))), + ); + assert!(app.source_dirty()); + send(&mut app, Message::Page(Page::Diagram)); + let source = app.source_editor.text(); + let version = app.source_version; + let before = app.document.snapshot(); + send(&mut app, Message::Help); + assert!(app.context_help); + assert_eq!(app.guide.topic, Topic::Nesting); + for message in [ + Message::ApplySource, + Message::RevertSource, + Message::SourceEdit(text_editor::Action::Edit(text_editor::Edit::Paste( + Arc::new("overwrite".into()), + ))), + ] { + send(&mut app, message); + } + send(&mut app, Message::Escape); + assert_eq!(app.page, Page::Diagram); + assert_eq!(app.active_diagram, Some(diagram)); + assert!(app.source_dirty()); + assert_eq!(app.source_editor.text(), source); + assert_eq!(app.source_version, version); + assert!(Arc::ptr_eq(&before, &app.document.snapshot())); +} + +#[test] +fn context_help_f1_selects_scenario_topic_without_leaving_the_workspace() { + let fixture = behavior::scenario::direct_tests::fixture(); + let mut app = App::with_project(fixture.project); + send(&mut app, Message::Select(fixture.owner)); + send(&mut app, Message::Page(Page::Behavior)); + let before = app.document.snapshot(); + send(&mut app, Message::Help); + assert!(app.context_help); + assert_eq!(app.guide.topic, Topic::Scenarios); + assert_eq!(app.page, Page::Behavior); + assert!(app.scenario_focus_owner().is_none()); + assert!(!behavior::canvas_workspace::keyboard_owner_enabled(&app)); + send(&mut app, Message::Escape); + assert!(!app.context_help); + assert_eq!(app.selected, fixture.owner); + assert_eq!(app.behavior.active_owner, Some(fixture.owner)); + assert!(Arc::ptr_eq(&before, &app.document.snapshot())); +} + +#[test] +fn context_help_disables_allocation_input_including_early_work_drag_dispatch() { + let mut project = Project::empty(); + let diagram = project.ensure_diagram(Layer::Oa); + project.diagrams.get_mut(&diagram).unwrap().projection = ProjectionKind::Allocation; + let mut app = App::with_project(project); + assert!(app.allocation_input_owner()); + send( + &mut app, + Message::WorkDrag(allocation_drag::Event::ArrangeNext), + ); + assert!(app.allocation_drag.arrange_next); + send(&mut app, Message::Help); + assert!(app.context_help); + assert!(!app.allocation_input_owner()); + assert!(!app.allocation_drag.arrange_next); + assert_eq!(app.status, "Arrange cancelled"); + let before = app.document.snapshot(); + send( + &mut app, + Message::WorkDrag(allocation_drag::Event::ArrangeNext), + ); + assert!(!app.allocation_drag.arrange_next); + assert!(Arc::ptr_eq(&before, &app.document.snapshot())); + send(&mut app, Message::Escape); + assert!(app.allocation_input_owner()); +} + +#[test] +fn context_help_rejects_a_reference_picker_open_queued_from_the_inspector() { + let mut project = Project::empty(); + let owner = project + .add_element(Kind::DataType, Layer::Oa, "Record", None) + .unwrap(); + if let Some(SharedBody::DataType { definition, .. }) = + project.elements.get_mut(&owner).unwrap().shared_mut() + { + *definition = DataTypeDefinition::Record { supertype: None }; + } + let mut app = App::with_project(project); + send(&mut app, Message::Select(owner)); + let request = app.draft.as_ref().unwrap().reference_open( + app.project(), + "/body/Oa/Shared/DataType/definition/Record/supertype", + iced::Rectangle { + x: 790., + y: 400., + width: 278., + height: 32., + }, + ); + let before = serde_json::to_value(app.draft.as_ref().unwrap().recovery_snapshot()).unwrap(); + send(&mut app, Message::ContextHelp(Topic::Nesting)); + assert!(app.context_help); + send(&mut app, Message::FieldReferenceOpen(request)); + assert!(!app.reference_input_active()); + send(&mut app, Message::Escape); + assert!(!app.context_help); + assert_eq!( + serde_json::to_value(app.draft.as_ref().unwrap().recovery_snapshot()).unwrap(), + before + ); +} + +#[test] +fn context_help_accepts_live_process_viewport_and_rejects_stale_measurements() { + use crate::behavior::topology::CanvasEvent; + let mut project = Project::empty(); + let owner = project + .add_element(Kind::Process, Layer::Oa, "Response process", None) + .unwrap(); + let mut app = App::with_project(project); + send(&mut app, Message::Select(owner)); + send(&mut app, Message::Page(Page::Behavior)); + let context = app.topology_context().unwrap(); + send( + &mut app, + Message::TopologyCanvas(CanvasEvent::Viewport(context, iced::Size::new(640., 480.))), + ); + let initial = app.behavior.topology.camera_boundary(); + let before = app.document.snapshot(); + send(&mut app, Message::Help); + assert!(app.context_help); + assert_eq!(app.guide.topic, Topic::Chains); + + let resized = iced::Size::new(420., 330.); + let context = app.topology_context().unwrap(); + send( + &mut app, + Message::TopologyCanvas(CanvasEvent::Viewport(context, resized)), + ); + let measured = app.behavior.topology.camera_boundary(); + assert!( + measured != initial, + "Help must admit passive viewport measurements" + ); + assert!(app.context_help); + let epoch = app.canvas_epoch; + for field in 0..3 { + let mut stale = app.topology_context().unwrap(); + match field { + 0 => stale.document = Id::new_v4(), + 1 => stale.owner = Id::new_v4(), + _ => stale.revision += 1, + } + send( + &mut app, + Message::TopologyCanvas(CanvasEvent::Viewport(stale, iced::Size::new(999., 777.))), + ); + assert!(app.behavior.topology.camera_boundary() == measured); + assert_eq!(app.canvas_epoch, epoch); + } + + send(&mut app, Message::CloseContextHelp); + assert!(!app.context_help); + assert!(app.behavior.topology.camera_boundary() == measured); + let context = app.topology_context().unwrap(); + let epoch = app.canvas_epoch; + send( + &mut app, + Message::TopologyCanvas(CanvasEvent::Viewport(context, resized)), + ); + assert_eq!( + app.canvas_epoch, epoch, + "The size observed behind Help is already current" + ); + let context = app.topology_context().unwrap(); + send( + &mut app, + Message::TopologyCanvas(CanvasEvent::Viewport(context, iced::Size::new(700., 500.))), + ); + assert!(app.behavior.topology.camera_boundary() != measured); + assert_eq!(app.page, Page::Behavior); + assert_eq!(app.selected, owner); + assert!(Arc::ptr_eq(&before, &app.document.snapshot())); + assert!(!app.document.can_undo()); +} + +async fn help_key( + mounted: &mut crate::behavior::canvas_workspace::tests::Mounted, + app: &mut App, + event: iced::Event, +) -> Vec { + let (mut messages, statuses) = mounted.input_with_status( + app, + std::slice::from_ref(&event), + iced::mouse::Cursor::Unavailable, + ); + super::escape::tests::subscriptions(app, event, statuses[0], &mut messages); + for message in messages.iter().cloned() { + let task = app.update(message); + mounted.perform(app, task).await; + } + messages +} + +#[tokio::test] +async fn mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret() { + use crate::behavior::canvas_workspace::tests::{Mounted, character, key}; + use iced::keyboard::key::Named; + let (mut app, diagram, a, _) = architecture(); + let element = app.project().diagrams[&diagram].nodes[&a].element; + send(&mut app, Message::Select(element)); + let before = app.document.snapshot(); + let mut mounted = Mounted::new(&mut app).await; + let field = mounted + .geometry(&app) + .text_inputs + .into_iter() + .filter(|bounds| bounds.x > app.window_size.width - 320.) + .min_by(|a, b| a.y.total_cmp(&b.y)) + .expect("visible Inspector Name input"); + mounted.click(&mut app, field.center()).await; + help_key(&mut mounted, &mut app, key(Named::Home)).await; + for character_value in "DRAFT ".chars() { + help_key( + &mut mounted, + &mut app, + character(&character_value.to_string()), + ) + .await; + } + help_key(&mut mounted, &mut app, key(Named::ArrowLeft)).await; + assert_eq!( + app.draft.as_ref().unwrap().inputs["/name"].raw, + "DRAFT Send" + ); + let camera = (app.zoom, app.pan); + help_key(&mut mounted, &mut app, key(Named::F1)).await; + assert!(app.context_help); + let article = iced::advanced::widget::Id::new(crate::guide::ARTICLE_SCROLL_ID); + let geometry = mounted.geometry(&app); + let background_scrolls = geometry + .scrolls + .iter() + .filter(|(id, _)| **id != article) + .map(|(id, (_, offset))| (id.clone(), *offset)) + .collect::>(); + assert_eq!(geometry.scrolls[&article].1.y, 0.); + + help_key(&mut mounted, &mut app, key(Named::PageDown)).await; + let down = mounted.geometry(&app).scrolls[&article].1.y; + assert!(down > 0., "PageDown scrolls the mounted Help article"); + help_key(&mut mounted, &mut app, key(Named::End)).await; + let end = mounted.geometry(&app).scrolls[&article].1.y; + assert!(end > down); + help_key(&mut mounted, &mut app, key(Named::PageDown)).await; + assert_eq!(mounted.geometry(&app).scrolls[&article].1.y, end); + help_key(&mut mounted, &mut app, key(Named::PageUp)).await; + assert!(mounted.geometry(&app).scrolls[&article].1.y < end); + help_key(&mut mounted, &mut app, key(Named::Home)).await; + assert_eq!(mounted.geometry(&app).scrolls[&article].1.y, 0.); + help_key(&mut mounted, &mut app, key(Named::ArrowDown)).await; + assert_eq!(mounted.geometry(&app).scrolls[&article].1.y, 40.); + help_key(&mut mounted, &mut app, key(Named::ArrowUp)).await; + help_key(&mut mounted, &mut app, key(Named::PageUp)).await; + let geometry = mounted.geometry(&app); + assert_eq!(geometry.scrolls[&article].1.y, 0.); + for (id, offset) in background_scrolls { + assert_eq!( + geometry.scrolls[&id].1, offset, + "Help only scrolls its own article" + ); + } + for character_value in "IGNORED".chars() { + help_key( + &mut mounted, + &mut app, + character(&character_value.to_string()), + ) + .await; + } + let messages = mounted + .batch( + &mut app, + &[ + iced::Event::InputMethod(iced::advanced::input_method::Event::Preedit( + "雨".into(), + None, + )), + iced::Event::InputMethod(iced::advanced::input_method::Event::Commit("雨".into())), + ], + iced::mouse::Cursor::Unavailable, + ) + .await; + assert!(!messages.iter().any(|m| matches!(m, Message::Field(..)))); + assert_eq!( + app.draft.as_ref().unwrap().inputs["/name"].raw, + "DRAFT Send" + ); + help_key(&mut mounted, &mut app, key(Named::Escape)).await; + assert!(!app.context_help); + help_key(&mut mounted, &mut app, character("X")).await; + assert_eq!( + app.draft.as_ref().unwrap().inputs["/name"].raw, + "DRAFTX Send", + "Return keeps the actual mid-string caret without refocusing a guessed field" + ); + assert_eq!((app.zoom, app.pan), camera); + assert!(Arc::ptr_eq(&before, &app.document.snapshot())); + let messages = help_key(&mut mounted, &mut app, key(Named::PageDown)).await; + assert!( + !messages + .iter() + .any(|m| matches!(m, Message::ContextHelpScroll(_))) + ); + assert!( + iced_runtime::task::into_stream( + app.update(Message::ContextHelpScroll(crate::guide::ContextScroll::End,)) + ) + .is_none(), + "A late Help scroll cannot operate after closing" + ); +} + +#[tokio::test] +async fn mounted_context_help_observes_modifier_release_before_plain_canvas_click() { + use crate::behavior::canvas_workspace::tests::{Mounted, key}; + use iced::{ + keyboard::{Event, Modifiers, key::Named}, + mouse, + }; + let (mut app, diagram, a, b) = architecture(); + choose(&mut app, a, multiselect::Choice::Replace); + app.window_size = iced::Size::new(2000., 1400.); + let mut mounted = Mounted::new(&mut app).await; + app.zoom = 1.; + app.pan = iced::Vector::ZERO; + app.fit_to_view = false; + mounted.settle(&mut app).await; + mounted + .batch( + &mut app, + &[iced::Event::Keyboard(Event::ModifiersChanged( + Modifiers::SHIFT, + ))], + mouse::Cursor::Unavailable, + ) + .await; + help_key(&mut mounted, &mut app, key(Named::F1)).await; + assert!(app.context_help); + mounted + .batch( + &mut app, + &[iced::Event::Keyboard(Event::ModifiersChanged( + Modifiers::empty(), + ))], + mouse::Cursor::Unavailable, + ) + .await; + help_key(&mut mounted, &mut app, key(Named::Escape)).await; + let bounds = mounted + .geometry(&app) + .bounds(crate::allocation_input::CANVAS_ID); + let node = projection::project_view(app.project(), diagram) + .nodes + .into_iter() + .find(|node| node.id == b) + .unwrap(); + let at = iced::Point::new( + bounds.x + node.position.x + 40., + bounds.y + node.position.y + 35., + ); + mounted.click(&mut app, at).await; + assert_eq!( + app.multiselect_snapshot().unwrap().targets(), + &[Target::Placement(b)], + "Shift released during Help must not add the next card to the previous selection" + ); +} + +#[tokio::test] +async fn mounted_context_help_retires_held_pan_without_replaying_its_release() { + use crate::behavior::canvas_workspace::tests::{Mounted, key}; + use iced::{keyboard::key::Named, mouse}; + let (mut app, _, _, _) = architecture(); + let mut mounted = Mounted::new(&mut app).await; + let canvas = mounted + .geometry(&app) + .bounds(crate::allocation_input::CANVAS_ID); + let start = canvas.center(); + let moved = start + iced::Vector::new(20., 10.); + mounted + .batch( + &mut app, + &[ + iced::Event::Mouse(mouse::Event::CursorMoved { position: start }), + iced::Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Middle)), + iced::Event::Mouse(mouse::Event::CursorMoved { position: moved }), + ], + mouse::Cursor::Available(moved), + ) + .await; + let camera = (app.zoom, app.pan); + let before = app.document.snapshot(); + help_key(&mut mounted, &mut app, key(Named::F1)).await; + assert!(app.context_help); + mounted + .batch( + &mut app, + &[iced::Event::Mouse(mouse::Event::ButtonReleased( + mouse::Button::Middle, + ))], + mouse::Cursor::Unavailable, + ) + .await; + help_key(&mut mounted, &mut app, key(Named::Escape)).await; + let next = moved + iced::Vector::new(90., 50.); + let messages = mounted + .batch( + &mut app, + &[iced::Event::Mouse(mouse::Event::CursorMoved { + position: next, + })], + mouse::Cursor::Available(next), + ) + .await; + assert!(!messages.iter().any(|m| matches!(m, Message::Pan(_)))); + assert_eq!( + (app.zoom, app.pan), + camera, + "Moving without a held button cannot resume the pre-Help pan" + ); + assert!(Arc::ptr_eq(&before, &app.document.snapshot())); +} + +#[tokio::test] +async fn context_help_barrier_retires_text_selection_drag_without_changing_the_caret() { + use iced::advanced::{Layout, layout, widget}; + use iced::{Element, Event, Rectangle, mouse}; + type InputState = iced::widget::text_input::State< + ::Paragraph, + >; + fn input(open: bool) -> Element<'static, Message> { + crate::guide::protect_workspace( + open, + iced::widget::text_input("Name", "A long retained property name") + .on_input(|value| Message::Field("/name".into(), value)) + .width(400) + .padding(8) + .into(), + ) + } + fn dispatch( + root: &mut Element<'_, Message>, + tree: &mut widget::Tree, + node: &layout::Node, + renderer: &iced::Renderer, + event: Event, + cursor: mouse::Cursor, + ) -> Vec { + let mut messages = Vec::new(); + root.as_widget_mut().update( + tree, + &event, + Layout::new(node), + cursor, + renderer, + &mut iced::advanced::clipboard::Null, + &mut iced::advanced::Shell::new(&mut messages), + &Rectangle::new(iced::Point::ORIGIN, iced::Size::new(400., 60.)), + ); + messages + } + let mounted = crate::behavior::canvas_workspace::tests::Mounted::unshown().await; + let renderer = &mounted.renderer; + let mut root = input(false); + let mut tree = widget::Tree::new(root.as_widget()); + let node = root.as_widget_mut().layout( + &mut tree, + renderer, + &layout::Limits::new(iced::Size::ZERO, iced::Size::new(400., 60.)), + ); + let start = iced::Point::new(20., 18.); + let end = iced::Point::new(110., 18.); + for event in [ + mouse::Event::CursorMoved { position: start }, + mouse::Event::ButtonPressed(mouse::Button::Left), + mouse::Event::CursorMoved { position: end }, + ] { + let cursor = if matches!(event, mouse::Event::CursorMoved { position } if position == end) { + mouse::Cursor::Available(end) + } else { + mouse::Cursor::Available(start) + }; + dispatch( + &mut root, + &mut tree, + &node, + renderer, + Event::Mouse(event), + cursor, + ); + } + let caret = tree.children[0].state.downcast_ref::().cursor(); + assert!( + tree.children[0] + .state + .downcast_ref::() + .is_focused() + ); + root = input(true); + tree.diff(root.as_widget()); + let messages = dispatch( + &mut root, + &mut tree, + &node, + renderer, + Event::Window(iced::window::Event::RedrawRequested( + std::time::Instant::now(), + )), + mouse::Cursor::Unavailable, + ); + assert!( + messages.is_empty(), + "Gesture retirement discards release actions" + ); + dispatch( + &mut root, + &mut tree, + &node, + renderer, + Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)), + mouse::Cursor::Unavailable, + ); + root = input(false); + tree.diff(root.as_widget()); + let later = iced::Point::new(300., 18.); + dispatch( + &mut root, + &mut tree, + &node, + renderer, + Event::Mouse(mouse::Event::CursorMoved { position: later }), + mouse::Cursor::Available(later), + ); + let state = tree.children[0].state.downcast_ref::(); + assert!(state.is_focused()); + assert_eq!( + state.cursor(), + caret, + "An unheld pointer no longer extends the pre-Help text selection" + ); +} diff --git a/crates/oa-desktop/src/app/escape.rs b/crates/oa-desktop/src/app/escape.rs index 8683f30a..99417bd7 100644 --- a/crates/oa-desktop/src/app/escape.rs +++ b/crates/oa-desktop/src/app/escape.rs @@ -14,7 +14,8 @@ pub(crate) fn root<'a, R: renderer::Renderer + 'a>( content: Element<'a, Message, Theme, R>, ) -> Element<'a, Message, Theme, R> { let modal = app.text_workspace.menu().is_none() - && (app.behavior.creation.has_pending() + && (app.context_help + || app.behavior.creation.has_pending() || app.diagram_usages.is_some() || app.behavior.source_active() || (app.page == Page::Text diff --git a/crates/oa-desktop/src/behavior/canvas_workspace.rs b/crates/oa-desktop/src/behavior/canvas_workspace.rs index 6982cb35..b3d846ed 100644 --- a/crates/oa-desktop/src/behavior/canvas_workspace.rs +++ b/crates/oa-desktop/src/behavior/canvas_workspace.rs @@ -16,6 +16,7 @@ pub fn keyboard_enabled(app: &crate::app::App) -> bool { /// Passive I/O suspends commands without changing the logical input owner. pub(crate) fn keyboard_owner_enabled(app: &crate::app::App) -> bool { !app.hosted.visible + && !app.context_help && app.workflow.is_none() && app.file_prompt.is_none() && !app.delete_pending diff --git a/crates/oa-desktop/src/behavior/state_canvas.rs b/crates/oa-desktop/src/behavior/state_canvas.rs index 8b6d2a74..8b03b752 100644 --- a/crates/oa-desktop/src/behavior/state_canvas.rs +++ b/crates/oa-desktop/src/behavior/state_canvas.rs @@ -1497,7 +1497,9 @@ impl StateCanvas<'_> { format!("{} · {} · right-click to edit", r.name, routing::state_transition_summary(self.project, r)) } }).unwrap_or_default(), - _ => "Select / move · drag a vertex · drag selected transition endpoints to reconnect · middle-drag to pan".into(), + // General gestures are available in Help; keep this stable slot + // for the active operation or the item under the pointer. + _ => String::new(), }, } } diff --git a/crates/oa-desktop/src/behavior/state_view.rs b/crates/oa-desktop/src/behavior/state_view.rs index 03f86215..0a176264 100644 --- a/crates/oa-desktop/src/behavior/state_view.rs +++ b/crates/oa-desktop/src/behavior/state_view.rs @@ -225,13 +225,13 @@ fn selection_controls(app: &App) -> Element<'_, Message> { } controls = controls .push(action( - "Clear selection", + "Clear", Message::DiagramSelection(SelectionEvent::Clear(snapshot.context())), )) .push( label(format!( - "Properties edit only {}", - crate::views::short(app.project().named(app.selected), 18) + "Properties: {} only", + crate::views::short(app.project().named(app.selected), 10) )) .wrapping(iced::widget::text::Wrapping::None), ); @@ -241,12 +241,12 @@ fn selection_controls(app: &App) -> Element<'_, Message> { } else { "Use Select / move to select multiple elements" }; - column![ - controls, - label(hint).wrapping(iced::widget::text::Wrapping::None) - ] - .height(56) - .into() + controls + .push(crate::views::diagram_help( + crate::guide::Topic::States, + hint, + )) + .into() } fn transition_details(machine: Id, selected: Id) -> Element<'static, Message> { diff --git a/crates/oa-desktop/src/behavior/topology/view.rs b/crates/oa-desktop/src/behavior/topology/view.rs index 5f05635a..e006e179 100644 --- a/crates/oa-desktop/src/behavior/topology/view.rs +++ b/crates/oa-desktop/src/behavior/topology/view.rs @@ -585,15 +585,13 @@ fn selection_controls(app: &App) -> Element<'_, Message> { .wrapping(iced::widget::text::Wrapping::None), ); } - // These two rows exist even with an empty set so selection never moves the - // canvas viewport or changes the camera's interpretation of the pointer. - column![ - controls, - label("Shift+click toggles · drag selected cards to reorder · previews are read-only") - .wrapping(iced::widget::text::Wrapping::None) - ] - .height(56) - .into() + // Keep the row even with an empty set so selection never moves the canvas. + controls + .push(crate::views::diagram_help( + crate::guide::Topic::Chains, + "Shift-click toggles selection. Drag selected local cards to reorder; reused previews are read-only.", + )) + .into() } fn editor_panel<'a, R: iced::advanced::text::Renderer + 'a>( diff --git a/crates/oa-desktop/src/guide.rs b/crates/oa-desktop/src/guide.rs index 6f478f0f..30914dd2 100644 --- a/crates/oa-desktop/src/guide.rs +++ b/crates/oa-desktop/src/guide.rs @@ -48,6 +48,11 @@ pub enum Event { pub(crate) const ARTICLE_SCROLL_ID: &str = "engineering-guide-article"; +mod context_help; +pub(crate) use context_help::{ + ContextScroll, context_scroll_key, context_scroll_task, protect_workspace, +}; + impl State { /// Returns whether navigation selected a different article. pub fn update(&mut self, event: Event) -> bool { @@ -310,7 +315,7 @@ fn article(topic: Topic) -> Article { "Use the diagram selector or + View to work with a focused diagram. View properties edits its name, perspective, projection and Saved view visibility. Apply changes commits the view settings.", "Choose Containment for semantic children, Architecture · allocated work for responsibilities, Functional dataflow for work and exchanges, or Missions & capabilities for outcomes. All relationships explores one layer; OA ↔ SA traceability can show placed elements from both layers and their correspondence lines alongside ordinary relationships.", "Select an element and edit Semantic parent to change ownership. Use the Allocation palette tool to connect a performer to existing unallocated leaf work in Containment. The relationship can appear as a line there; Architecture · allocated work shows responsibility through nesting instead. Saved visibility filters can hide a line without removing the relationship.", - "Scroll to zoom and use Fit to frame the current view. In allocated-work views, dragging work changes its assignment and placement together. Choose Arrange next drag or press Alt+A to move work without changing responsibility for that one drag; Escape cancels the armed action. Auto-layout arranges the whole view. Export SVG produces a shareable view.", + "Scroll to zoom and use Fit to frame the current view. In allocated-work views, dragging work changes its assignment and placement together. Choose Arrange or press Alt+A to move work without changing responsibility for that one drag; Escape cancels the armed action. Auto-layout arranges the whole view. Export SVG produces a shareable view.", "Select a diagram node to access Placement, Fold / unfold and Hide. With the canvas focused, Delete hides its placement; Shift+Delete asks to remove the model element. Other views retain a hidden element. Undo restores either change.", ], ), @@ -334,7 +339,7 @@ fn article(topic: Topic) -> Article { "Finish or cancel property and source edits, then drag an Activity or Function body in Architecture · allocated work. Aim at exposed performer space, including a collapsed performer's header. Read Destination above the canvas and the outlined target before releasing; release outside the canvas or press Escape to cancel.", "Use Shift-click to add or remove cards from the selection, or right-click a card and choose Add to selection. Drag any selected work card to assign the whole work selection to one performer. Independent work can start on different performers. The inspector keeps its primary element during the drag; right-click a selected card and choose Inspect this element to change that primary without losing the group.", "The move preserves work ownership and identities. A composite work card moves its leaves together when they have one coherent responsibility; if its own leaves are distributed across performers, choose specific leaves instead. Role responsibilities remain explicit: an outward drag that would leave a role-derived performer explains why it cannot remove that responsibility.", - "To move work and performers together without changing responsibility, select their cards and choose Arrange next drag or press Alt+A. This moves the selected work subtrees and each selected performer's contained cards together, if the complete layout stays readable and clear. Ports and connections cannot join a placement move. Dragging only performer cards normally moves them and their contained cards without changing assignments.", + "To move work and performers together without changing responsibility, select their cards and choose Arrange or press Alt+A. This moves the selected work subtrees and each selected performer's contained cards together, if the complete layout stays readable and clear. Ports and connections cannot join a placement move. Dragging only performer cards normally moves them and their contained cards without changing assignments.", "Make room when work cards would overlap, and move the view or zoom in if the moving work is not readable. The destination name stays above the canvas while the target outline stays fixed during the drag. Hover Destination to inspect a long name: outside the canvas, the tooltip explicitly identifies the last target, and releasing cancels. Return to the canvas to choose the drop. A refused drop keeps the model and history unchanged. One Undo reverses an accepted assignment and placement together; Save all writes the corresponding source changes.", ], ), @@ -463,6 +468,10 @@ fn article(topic: Topic) -> Article { summary: "An operational Process or system Functional chain connects contributions of existing work and exchanges, including alternatives and reusable procedures. It explains how work contributes to an outcome.", keywords: "process functional chain ordered occurrence sequence path involvement dataflow exchange repeated steps caller contextual qualified assembly common work focus reuse", sections: &[ + explain( + "Select a group", + "Use Select, then Shift-click to add or remove contributions from the selection. Drag selected local cards to reorder them in the same column. Reused previews are read-only; open their referenced definition to edit. Properties affect only the primary selected item. Help or F1 opens this guide without leaving the diagram; Close or Escape returns to editing.", + ), walkthrough( "Describe a path through exchanges", &[ @@ -569,6 +578,10 @@ fn article(topic: Topic) -> Article { summary: "Describe the conditions in which the operation or system behaves differently. States and modes belong to regions within a state machine.", keywords: "state machine mode region initial final transition trigger guard effect entry exit do availability degraded nominal diagram draw reconnect local internal timed fold unfold placement pan zoom undo", sections: &[ + explain( + "Select a group", + "Choose Select / move, then Shift-click to add or remove elements from the selection. Properties affect only the primary selected item; Hide selected removes placements from this view. Help or F1 opens this guide without leaving the diagram; Close or Escape returns to editing.", + ), walkthrough( "Build a state machine", &[ @@ -1156,6 +1169,14 @@ fn topic_button(topic: Topic, selected: bool) -> iced::widget::Button<'static, M } fn article_view(topic: Topic) -> Element<'static, Message> { + article_content(topic, true) +} + +pub(crate) fn context_view(state: &State) -> Element<'static, Message> { + article_content(state.topic, false) +} + +fn article_content(topic: Topic, navigation: bool) -> Element<'static, Message> { let article = article(topic); let mut content = column![ text(topic.category()).size(11).color(style::MUTED), @@ -1194,14 +1215,14 @@ fn article_view(topic: Topic) -> Element<'static, Message> { } content = content.push(container(body).padding(20).width(Fill).style(style::card)); } - if let Some((page, label)) = article.destination { + if navigation && let Some((page, label)) = article.destination { content = content.push( button(text(label).size(13)) .padding([11, 15]) .on_press(Message::Page(page)), ); } - if topic == Topic::FirstProject { + if navigation && topic == Topic::FirstProject { content = content.push(text("For a worked model, open the water-pressure walkthrough. Copy the whole examples/release1 folder and open the copied project.arcadia before editing; read its README.md. If you use Save as, also copy evidence/ beside the new entry: Save as copies model source, not external artifact targets.").size(13)); content = content.push( button(text("Open water-pressure walkthrough").size(13)) diff --git a/crates/oa-desktop/src/guide/context_help.rs b/crates/oa-desktop/src/guide/context_help.rs new file mode 100644 index 00000000..07870b4b --- /dev/null +++ b/crates/oa-desktop/src/guide/context_help.rs @@ -0,0 +1,282 @@ +//! Modal reading input and preservation of the mounted editing workspace. +use super::ARTICLE_SCROLL_ID; +use crate::app::Message; +use iced::Element; + +#[derive(Debug, Clone, Copy)] +pub(crate) enum ContextScroll { + LineUp, + LineDown, + PageUp, + PageDown, + Home, + End, +} + +pub(crate) fn context_scroll_key( + event: iced::Event, + status: iced::event::Status, + _: iced::window::Id, +) -> Option { + use iced::keyboard::{Event, Key, key::Named}; + let iced::Event::Keyboard(Event::KeyPressed { key, modifiers, .. }) = event else { + return None; + }; + if status == iced::event::Status::Captured || !modifiers.is_empty() { + return None; + } + let scroll = match key { + Key::Named(Named::ArrowUp) => ContextScroll::LineUp, + Key::Named(Named::ArrowDown) => ContextScroll::LineDown, + Key::Named(Named::PageUp) => ContextScroll::PageUp, + Key::Named(Named::PageDown) => ContextScroll::PageDown, + Key::Named(Named::Home) => ContextScroll::Home, + Key::Named(Named::End) => ContextScroll::End, + _ => return None, + }; + Some(Message::ContextHelpScroll(scroll)) +} + +pub(crate) fn context_scroll_task(scroll: ContextScroll) -> iced::Task { + struct Scroll(ContextScroll); + impl iced::advanced::widget::Operation for Scroll { + fn traverse( + &mut self, + visit: &mut dyn FnMut(&mut dyn iced::advanced::widget::Operation), + ) { + visit(self); + } + fn scrollable( + &mut self, + id: Option<&iced::advanced::widget::Id>, + bounds: iced::Rectangle, + content_bounds: iced::Rectangle, + _: iced::Vector, + state: &mut dyn iced::advanced::widget::operation::Scrollable, + ) { + use iced::advanced::widget::operation::scrollable::{AbsoluteOffset, RelativeOffset}; + if id != Some(&iced::advanced::widget::Id::new(ARTICLE_SCROLL_ID)) { + return; + } + match self.0 { + ContextScroll::Home | ContextScroll::End => state.snap_to(RelativeOffset { + x: None, + y: Some(if matches!(self.0, ContextScroll::End) { + 1. + } else { + 0. + }), + }), + scroll => { + let y = match scroll { + ContextScroll::LineUp => -40., + ContextScroll::LineDown => 40., + ContextScroll::PageUp => -bounds.height * 0.9, + ContextScroll::PageDown => bounds.height * 0.9, + _ => unreachable!(), + }; + // Iced clamps this movement to the actual content bounds. + state.scroll_by(AbsoluteOffset { x: 0., y }, bounds, content_bounds); + } + } + } + } + iced::advanced::widget::operate(Scroll(scroll)) +} + +/// Keep the mounted editor and its caret, but prevent modal input from reaching +/// widget-internal state before the App message guard can reject edits. +pub(crate) fn protect_workspace<'a, R: iced::advanced::renderer::Renderer + 'a>( + help_open: bool, + content: Element<'a, Message, iced::Theme, R>, +) -> Element<'a, Message, iced::Theme, R> { + Element::new(WorkspaceInput { help_open, content }) +} + +struct WorkspaceInput<'a, R> { + help_open: bool, + content: Element<'a, Message, iced::Theme, R>, +} + +#[derive(Default)] +struct WorkspaceInputState { + help_open: bool, +} + +impl iced::advanced::Widget + for WorkspaceInput<'_, R> +{ + fn tag(&self) -> iced::advanced::widget::tree::Tag { + iced::advanced::widget::tree::Tag::of::() + } + fn state(&self) -> iced::advanced::widget::tree::State { + iced::advanced::widget::tree::State::new(WorkspaceInputState::default()) + } + fn children(&self) -> Vec { + vec![iced::advanced::widget::Tree::new(self.content.as_widget())] + } + fn diff(&self, tree: &mut iced::advanced::widget::Tree) { + tree.diff_children(std::slice::from_ref(&self.content)); + } + fn size(&self) -> iced::Size { + self.content.as_widget().size() + } + fn size_hint(&self) -> iced::Size { + self.content.as_widget().size_hint() + } + fn layout( + &mut self, + tree: &mut iced::advanced::widget::Tree, + renderer: &R, + limits: &iced::advanced::layout::Limits, + ) -> iced::advanced::layout::Node { + self.content + .as_widget_mut() + .layout(&mut tree.children[0], renderer, limits) + } + fn operate( + &mut self, + tree: &mut iced::advanced::widget::Tree, + layout: iced::advanced::Layout<'_>, + renderer: &R, + operation: &mut dyn iced::advanced::widget::Operation, + ) { + self.content + .as_widget_mut() + .operate(&mut tree.children[0], layout, renderer, operation); + } + fn update( + &mut self, + tree: &mut iced::advanced::widget::Tree, + event: &iced::Event, + layout: iced::advanced::Layout<'_>, + cursor: iced::mouse::Cursor, + renderer: &R, + clipboard: &mut dyn iced::advanced::Clipboard, + shell: &mut iced::advanced::Shell<'_, Message>, + viewport: &iced::Rectangle, + ) { + let entering = { + let state = tree.state.downcast_mut::(); + let entering = self.help_open && !state.help_open; + state.help_open = self.help_open; + entering + }; + if entering { + // Retire held gestures without executing their release actions. + // Text controls keep their real caret/focus; drawing tools remain + // selected, but an old drag cannot resume when Help is dismissed. + for event in [ + iced::mouse::Event::CursorLeft, + iced::mouse::Event::ButtonReleased(iced::mouse::Button::Left), + iced::mouse::Event::ButtonReleased(iced::mouse::Button::Middle), + iced::mouse::Event::ButtonReleased(iced::mouse::Button::Right), + ] { + let mut discarded = Vec::new(); + let mut cancellation = iced::advanced::Shell::new(&mut discarded); + self.content.as_widget_mut().update( + &mut tree.children[0], + &iced::Event::Mouse(event), + layout, + iced::mouse::Cursor::Unavailable, + renderer, + clipboard, + &mut cancellation, + viewport, + ); + shell.request_redraw_at(cancellation.redraw_request()); + if cancellation.is_layout_invalid() { + shell.invalidate_layout(); + } + if cancellation.are_widgets_invalid() { + shell.invalidate_widgets(); + } + } + } + if self.help_open + && matches!( + event, + iced::Event::Keyboard( + iced::keyboard::Event::KeyPressed { .. } + | iced::keyboard::Event::KeyReleased { .. } + ) | iced::Event::Mouse(_) + | iced::Event::Touch(_) + | iced::Event::InputMethod(_) + ) + { + return; + } + // ModifiersChanged and passive window/redraw events still reach the + // editor, so releasing Shift during Help cannot stick on return. + self.content.as_widget_mut().update( + &mut tree.children[0], + event, + layout, + cursor, + renderer, + clipboard, + shell, + viewport, + ); + } + fn draw( + &self, + tree: &iced::advanced::widget::Tree, + renderer: &mut R, + theme: &iced::Theme, + style: &iced::advanced::renderer::Style, + layout: iced::advanced::Layout<'_>, + cursor: iced::mouse::Cursor, + viewport: &iced::Rectangle, + ) { + self.content.as_widget().draw( + &tree.children[0], + renderer, + theme, + style, + layout, + cursor, + viewport, + ); + } + fn mouse_interaction( + &self, + tree: &iced::advanced::widget::Tree, + layout: iced::advanced::Layout<'_>, + cursor: iced::mouse::Cursor, + viewport: &iced::Rectangle, + renderer: &R, + ) -> iced::mouse::Interaction { + if self.help_open { + iced::mouse::Interaction::None + } else { + self.content.as_widget().mouse_interaction( + &tree.children[0], + layout, + cursor, + viewport, + renderer, + ) + } + } + fn overlay<'b>( + &'b mut self, + tree: &'b mut iced::advanced::widget::Tree, + layout: iced::advanced::Layout<'b>, + renderer: &R, + viewport: &iced::Rectangle, + translation: iced::Vector, + ) -> Option> { + if self.help_open { + None + } else { + self.content.as_widget_mut().overlay( + &mut tree.children[0], + layout, + renderer, + viewport, + translation, + ) + } + } +} diff --git a/crates/oa-desktop/src/views.rs b/crates/oa-desktop/src/views.rs index 6781b123..a1ceaf75 100644 --- a/crates/oa-desktop/src/views.rs +++ b/crates/oa-desktop/src/views.rs @@ -25,6 +25,23 @@ pub fn action<'a>(s: &str, m: Message) -> widget::Button<'a, Message> { .on_press(m) .style(style::nav) } + +/// Optional instructions belong beside the work, without taking a canvas row. +/// The button also opens keyboard-accessible help; the tooltip is only a preview. +pub(crate) fn diagram_help<'a>( + topic: crate::guide::Topic, + hint: impl Into, +) -> View<'a, Message> { + tooltip( + action("Help · F1", Message::ContextHelp(topic)), + container(text(hint.into()).size(12)) + .padding(10) + .max_width(360) + .style(style::card), + tooltip::Position::Bottom, + ) + .into() +} pub fn short(s: &str, limit: usize) -> String { let s = s.split_whitespace().collect::>().join(" "); if s.graphemes(true).count() > limit { @@ -240,11 +257,23 @@ pub fn view(app: &App) -> View<'_, Message> { if !matches!(app.page, Page::Home | Page::Text | Page::Guide) { body = body.push(inspector(app)); } + let diagram_feedback = diagram_feedback(app); + // Keep operation outcomes visible even while a drawing hint is active. + let (status, status_detail) = if app.busy { + ("Working…".into(), "Working…".into()) + } else if let Some(feedback) = diagram_feedback.filter(|feedback| *feedback != app.status) { + ( + format!("{} · {}", short(&app.status, 60), short(&feedback, 80)), + format!("{}\n{}", app.status, feedback), + ) + } else { + (short(&app.status, 145), app.status.clone()) + }; let footer = container( row![ container(tooltip( - text(short(if app.busy { "Working…" } else { &app.status }, 145)).size(11), - container(text(if app.busy { "Working…" } else { &app.status }).size(12)) + text(status).size(11).wrapping(widget::text::Wrapping::None), + container(text(status_detail).size(12)) .padding(10) .max_width(600) .style(style::card), @@ -267,6 +296,25 @@ pub fn view(app: &App) -> View<'_, Message> { .padding([4, 16]) .style(style::panel); let root = crate::allocation_input::root(app, column![header, task_nav, body, footer]); + let root = crate::guide::protect_workspace(app.context_help, root); + if app.context_help { + return modal_width( + root, + column![ + row![ + text("Diagram help").size(18), + Space::new().width(Fill), + action("Close · Esc", Message::CloseContextHelp), + ] + .align_y(iced::Center), + crate::guide::context_view(&app.guide), + ] + .spacing(12) + .height((app.window_size.height - 140.).max(300.)) + .into(), + (app.window_size.width - 80.).min(900.), + ); + } if app.architecture.as_ref().is_some_and(|s| s.modal()) { return modal_width( root, @@ -362,7 +410,8 @@ pub fn view(app: &App) -> View<'_, Message> { (app.window_size.width - 32.).clamp(120., 760.), ); } - root + // Match modal_width's first child so help does not recreate the editor tree. + widget::stack![root].into() } fn modal<'a>(base: View<'a, Message>, content: View<'a, Message>) -> View<'a, Message> { modal_width(base, content, 800.) @@ -447,7 +496,7 @@ fn diagram(app: &App) -> View<'_, Message> { .active_diagram .and_then(|id| app.project().diagrams.get(&id)) .map(|d| d.projection); - let modes = row![ + let mut modes = row![ label("View content"), pick_list( [ @@ -462,7 +511,15 @@ fn diagram(app: &App) -> View<'_, Message> { Message::Projection ) .padding(8) - .text_size(12) + .text_size(12), + diagram_help( + crate::guide::Topic::Nesting, + if projection == Some(ProjectionKind::Traceability) { + "Shows OA and SA elements with correspondence lines. Place both ends of a trace to show it; port traces use their owner cards. Open Help for trace visibility and editing controls." + } else { + "Shift-click to add or remove selection. Right-click for actions; drag to arrange; scroll to zoom. Drag a connection line, bend or label to move it; Insert adds a bend and Escape cancels. Open Help for full editing controls." + }, + ) ] .spacing(10) .align_y(iced::Center); @@ -555,6 +612,26 @@ fn diagram(app: &App) -> View<'_, Message> { .center(Fill) .into() }; + if projection == Some(ProjectionKind::Allocation) { + modes = modes.push(tooltip( + action( + if app.allocation_drag.arrange_next { + "Arrange ✓" + } else { + "Arrange" + }, + Message::WorkDrag(crate::app::allocation_drag::Event::ArrangeNext), + ), + container(text(format!( + "Arrange next drag · {}. Move work within its current allocation; Escape cancels.", + crate::allocation_input::ARRANGE_SHORTCUT + ))) + .padding(10) + .max_width(420) + .style(style::card), + tooltip::Position::Bottom, + )); + } let mut tools = column![toolbar].spacing(8); if app.active_diagram.is_some() { tools = tools.push(modes); @@ -568,82 +645,50 @@ fn diagram(app: &App) -> View<'_, Message> { .feedback .as_ref() .map(|feedback| feedback.destination_identity()) - .unwrap_or_else(|| "None · drag work to choose".into()); + .unwrap_or_else(|| "—".into()); let inspection = app .allocation_drag .feedback .as_ref() .map(|feedback| feedback.inspection_identity()) .unwrap_or_else(|| destination.clone()); - tools = tools.push( - container(tooltip( - text(format!("Destination: {}", short(&destination, 28))) - .size(13) - .wrapping(widget::text::Wrapping::None), - container(text(inspection).size(13)) - .padding(10) - .max_width(420) - .style(style::card), - tooltip::Position::Top, - )) - .id("allocation-destination") - .height(26) - .width(Fill) - .clip(true), - ); - tools = tools.push( - row![ - action( - &format!( - "{} · {}", - if app.allocation_drag.arrange_next { - "Arrange next drag: armed" - } else { - "Arrange next drag" - }, - crate::allocation_input::ARRANGE_SHORTCUT - ), - Message::WorkDrag(crate::app::allocation_drag::Event::ArrangeNext) - ), - label("Drag work into a performer to assign · out to remove assignment") - ] - .spacing(8) - .align_y(iced::Center), - ); + let destination_control = container(tooltip( + text(format!("Destination: {}", short(&destination, 28))) + .size(13) + .wrapping(widget::text::Wrapping::None), + container(text(inspection).size(13)) + .padding(10) + .max_width(420) + .style(style::card), + tooltip::Position::Top, + )) + .id("allocation-destination") + .height(26) + .width(Fill) + .clip(true); + tools = tools.push(destination_control); } if let Some(diagram) = app.active_diagram { let view = oa_core::projection::project_view(app.project(), diagram); if projection == Some(ProjectionKind::Traceability) { let correspondence_lines = view.edges.iter().filter(|edge| edge.trace).count(); tools = tools.push( - column![ - label("Shows OA and SA elements together, with correspondence lines alongside ordinary relationships."), - label("Place both ends of a trace to show its line. Port traces use their owner cards; traces between relationships are reviewed on the Traceability page."), - row![ - label(format!("{correspondence_lines} correspondence lines in this view")), - action( - "Add existing elements…", - Message::Architecture(crate::app::architecture_authoring::Event::Existing(None)) - ), - action("Review layer traces", Message::ReviewLayerTraces), - action("View visibility…", Message::Select(diagram)), - ] - .spacing(7) - .align_y(iced::Center) - .wrap(), + row![ + label(format!("{correspondence_lines} trace lines")), + action( + "Add existing elements…", + Message::Architecture(crate::app::architecture_authoring::Event::Existing( + None + )) + ), + action("Review layer traces", Message::ReviewLayerTraces), + action("View visibility…", Message::Select(diagram)), ] - .spacing(4), + .spacing(7) + .align_y(iced::Center) + .wrap(), ); } - let edge = view.edges.iter().find(|edge| edge.id == app.selected); - let promoted = edge.is_some_and(|edge| { - oa_core::projection::edge_endpoint_placements( - app.project(), - &app.project().diagrams[&diagram], - edge.id, - ) - .is_some_and(|(source, target)| source != edge.source || target != edge.target) - }); let selection = app.multiselect_snapshot(); let count = selection.as_ref().map_or(0, |s| s.targets().len()); let mut selection_controls = @@ -662,66 +707,62 @@ fn diagram(app: &App) -> View<'_, Message> { } selection_controls = selection_controls .push(action( - "Clear selection", + "Clear", Message::DiagramSelection(crate::app::multiselect::Event::Clear( snapshot.context(), )), )) .push( label(format!( - "Properties edit only {}", - short(app.project().named(app.selected), 36) + "Properties: {} only", + short(app.project().named(app.selected), 14) )) .wrapping(widget::text::Wrapping::None), ); } - let hint = if let Some(feedback) = &app.allocation_drag.feedback { - feedback.text.as_str() - } else if let Some(session) = &app.connection { - if session.source.is_some() { - if session.candidates.is_empty() { - "No compatible targets are visible. Expand containers or show an endpoint · Esc cancels" - } else { - "Choose a highlighted target · middle-drag or arrow keys pan · Esc cancels" - } - } else { - session.tool.hint() - } - } else if count > 1 { - if selection - .as_ref() - .is_some_and(|s| crate::app::multiselect::placements(s).is_some()) - && projection != Some(ProjectionKind::Allocation) - { - "Shift-click to add/remove · drag selected to move · right-click for actions · scroll to zoom" - } else { - "Shift-click to add/remove · right-click for selection actions · Esc clears selection" - } - } else if promoted { - "Expand endpoint containers to edit this connection route" - } else if edge.is_some() { - "Right-click for routing · drag line / bend / label · Insert adds a bend · Esc cancels" - } else { - "Shift-click to add/remove · right-click for actions · drag to arrange · scroll to zoom" - }; - // Selection changes must not resize the measured canvas or refit its - // camera. Reserve both rows even when no group actions are available. + // Selection never moves the canvas. General controls live in Help; + // active gesture feedback uses the persistent application status bar. tools = tools.push( - container( - column![ - selection_controls, - label(hint).wrapping(widget::text::Wrapping::None) - ] - .spacing(3), - ) - .height(56) - .width(Fill) - .clip(true), + container(selection_controls) + .height(32) + .width(Fill) + .clip(true), ); } column![container(tools).padding(14), canvas].into() } +fn diagram_feedback(app: &App) -> Option { + if app.page != Page::Diagram { + return None; + } + if let Some(feedback) = &app.allocation_drag.feedback { + return Some(feedback.text.clone()); + } + if let Some(session) = &app.connection { + return Some( + if session.source.is_none() { + session.tool.hint() + } else if session.candidates.is_empty() { + "No compatible targets visible. Expand containers or show an endpoint · Esc cancels" + } else { + "Choose a highlighted target · Esc cancels" + } + .into(), + ); + } + let diagram = app.active_diagram?; + let view = oa_core::projection::project_view(app.project(), diagram); + let edge = view.edges.iter().find(|edge| edge.id == app.selected)?; + let (source, target) = oa_core::projection::edge_endpoint_placements( + app.project(), + &app.project().diagrams[&diagram], + edge.id, + )?; + (source != edge.source || target != edge.target) + .then(|| "Expand endpoint containers to edit this connection route".into()) +} + fn inspector(app: &App) -> View<'_, Message> { let p = app.project(); if let Some(target) = app.process_preview_primary() { diff --git a/docs/architecture.md b/docs/architecture.md index 034397f6..b27b3cf8 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -2,6 +2,8 @@ The normative contract is [language.rst](language.rst); [scope.md](scope.md) explains deliberate differences from the complete Arcadia/Capella ecosystem. V2 uses one typed model and one validated mutation boundary across the desktop, text editor and REST service. +Desktop changes follow the [editing workspace UX review criteria](ui-review.md) for concise persistent content, contextual help, visible actionable feedback and native interaction review. + ## Crate boundaries | Crate | Responsibility | Does not depend on | diff --git a/docs/ui-review.md b/docs/ui-review.md new file mode 100644 index 00000000..26d3ae61 --- /dev/null +++ b/docs/ui-review.md @@ -0,0 +1,27 @@ +# Editing workspace UX review + +These development criteria implement the [project goal](../PROJECT_GOAL.md): reduce system engineers' cognitive load, keep graphical editing intuitive, and provide concise, navigable built-in help. They also address the user's request tracked in Gitea issue #39 to prevent persistent instructional text from consuming editing space. They are review criteria, not a claim that any particular build has passed them. + +## Persistent content and progressive disclosure + +Populated editing workspaces prioritize model content, controls, current state and actionable feedback. General explanations, gesture tutorials and repeated shortcut lists belong in contextual Help, tooltips or explicitly opened details. Do not add permanent instructional paragraphs above a populated canvas merely to explain a feature. + +Keep essential control labels and relevant status visible. Offer concise next-step guidance in empty states and while a user is performing a multi-step action. Put longer explanations behind a clearly labeled disclosure near the relevant control or context. Essential instructions must be accessible through an explicit keyboard-reachable route; a hover-only tooltip is insufficient. Reuse the built-in guide for broader modeling explanations. + +Distinguish instruction from information needed to act safely. Current errors, pending edits, failed operations, fallback rendering, unavailable actions and recovery steps must remain apparent. Preserve consequential distinctions such as editing a shared definition, changing semantic order rather than saved positions, or applying properties to only one member of a selection. Long diagnostic detail may be disclosed on demand, but its visible summary must identify the problem and a usable next step. + +## Stable editing context + +Selection changes and gesture feedback must not unexpectedly move or resize the canvas, reset its camera, or change the interpretation of the pointer. Compact existing stable layout slots instead of conditionally removing them when their content is absent. Opening and closing help must preserve the model, selection and pending drafts, and return the user to a usable editing context. Explicitly requested panel changes may resize the workspace; verify their effect on focus and navigation. + +## Native review + +Exercise the changed workspace in the actual built application at its configured minimum window size and a representative normal size. Include an independent reviewer for material interaction or layout changes, following [the working agreement](../AGENTS.md). Review representative populated models as well as relevant empty, pending, failure and recovery states. + +- Inspect whether instructional prose or unused space displaces useful model content. Compare before/after screenshots at the same window size, display scaling, model and panel state when assessing space savings. +- Perform the affected workflow: select, edit, navigate, cancel and recover as applicable. Change between empty, single and multiple selections; exercise affected gestures and inspect camera and pointer stability. +- Find and use the disclosed guidance by keyboard as well as pointer. Check focus, dismissal, return to editing, and preservation of drafts. +- Trigger relevant disabled or rejected operations. Confirm their reason and recovery action remain visible, accurate and reachable. +- Check text, controls, panels and warnings for clipping, overlap, excessive scrolling and lost actions at the minimum size. Do not trade recovered space for unreadable text or unexplained symbols. + +Record the tested code version, runtime environment, workflows, observations and representative screenshots in the change's review evidence. Screenshots support layout findings; they do not establish working interaction, accessibility or state preservation. Fix material findings and recheck affected behavior before treating the change as verified. diff --git a/harness/STATE.md b/harness/STATE.md index e39cabbc..4f535d6b 100644 --- a/harness/STATE.md +++ b/harness/STATE.md @@ -1,42 +1,43 @@ -# Integrated prerelease source checkpoint — 2026-09-24 UTC +# Verified Windows source checkpoint — 2026-10-01 PDT -This branch assembles peer contributions for the Windows prerelease in issue37. -[PROJECT_GOAL.md](../PROJECT_GOAL.md) remains authoritative. The complete OA/SA -application is unfinished; published previews and finite prototypes are intermediate. +This branch combines the released integrated foundation +`715036e132677dd2bc2fb37ed316d93dc9987aec` with compact diagram controls and +contextual Help production source `6e7c4ddaf0775198384a8c4882809ea8e14b2976`. +[PROJECT_GOAL.md](../PROJECT_GOAL.md) remains authoritative; complete OA/SA +acceptance is unfinished. -**The current prerelease is Windows-only. Linux/WSL builds and checks remain -excluded by the user's explicit request, including after networking recovers.** +**Linux/WSL builds remain excluded by the user's explicit request.** -## Assembled source and acceptance boundary +## Verified capabilities and evidence -Combined code through **4deced53b98cd4d7649ba7aa60fa4b9b30d2f3b8**, plus the -test-only import correction from **7c2b06b63f8a0fe14b3f001996bdf965b36a4e85**, adds the reviewed -Connection/Route early-admission correction to the assembled Scenario/Text, -ordinary/State/Process/Allocation selection, direct drawing, Traceability and -picker changes. The [source handoff](prerelease-integrated-source-20260924.md) -identifies the incorporated commits, exact new test paths and required gates. -The nine event regressions and existing completed-Text-Apply cases are retained. -Direct formatting and whitespace checks pass; this source checkpoint does not -claim combined Cargo, native, packaged or release acceptance. The independent -[event-fix review](reviews/prerelease37-event-admission-20260924.md) found no -further material source defect in its stated scope. A subsequent peer compile -found a missing `projection::` qualification in the new Route test helper; -the current code includes that one-line correction. The original compile failed -before running tests. The first combined compile at `897d9f04` subsequently -found a missing `text_editor` import in the Allocation Text Apply regression; -the current source includes that one-line correction too. Both failures remain -recorded in the source handoff. The subsequent full test run at `8ddfadf4` -failed the mounted State picker fixture: added selection controls invalidated -its canvas-relative clicks. Source successor `a9cd364eacbbffa0693bab05b5a2b65f9d105535` -measures an identified fixed-height picker slot and checks Escape capture, -retaining the exact preservation/reopen/Place/Undo assertions. The source -handoff links the preserved failed and interrupted attempts. Corrected combined -Windows execution and package acceptance remain pending. +The [frozen integrated Windows preview](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/tag/v0.2.0-preview.integrated.20260924) +provides the accepted 715 foundation and its combined test/package evidence. +It remains unchanged. The older pending-build description previously at the top +of this file is superseded by that published result. -Live build, final-source and publication results belong in -[issue37](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/37). -Human workflows are described in [the preview checklist](../docs/preview-human-checks.md). -Private mixed-parser source is excluded from this application candidate. +The [compact Help contribution](compact-help-validation-20261001.md) removes +permanent canvas tutorial prose, keeps stable concise selection rows and full +allocation destinations, and supports contextual Help/F1 with keyboard reading, +exact caret/draft preservation and safe gesture retirement. Final focused gates +pass 125 tests; the earlier full-suite result retains its separate source scope. +[Fresh package validation](release-compact-help-validation-20261001.md) verifies +actual extracted desktop/server behavior, Save/Undo/Redo/reopen and complete +source/model oracles. This is a scoped development preview, not complete release +or acceptance of the separately owned follow-up union. +The [scoped compact Help Windows preview](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/tag/v0.2.0-preview.compact-help.20261001) +is published from evidence checkpoint `f1fdca371394aec1148e67f33f4d8c6b53a0c350`. +Its ZIP, checksum and validation attachment were downloaded and matched after +publication; [publication receipts](experiments/compact-help-20261001/publication.md) +retain the exact asset hashes and provenance. + +Dense diagrams, remaining Scenario group adapters, quantities/calculations/ +constraints, maintained libraries, broad accessibility/DPI and full OA/SA +acceptance remain unfinished. The independent projection/navigation, outgoing-drag, +icon, grid/performance and State-label contributions are outside this code. +A protected Save As destination collision has misleading external-change wording; +[issue 46](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/46) +records it. Files remain protected and normal/fresh-destination recovery is +verified. Live ownership, integration and release coordination remain in Gitea. ## Contribution-specific verification diff --git a/harness/compact-context-help-20260925.md b/harness/compact-context-help-20260925.md new file mode 100644 index 00000000..c3bd9806 --- /dev/null +++ b/harness/compact-context-help-20260925.md @@ -0,0 +1,34 @@ +# Compact diagram controls and contextual help + +Branch-specific work for [issue 39](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/39), based on published preview source `715036e132677dd2bc2fb37ed316d93dc9987aec`. +This record does not accept the complete first release or the other diagram defects. + +## Problem and choice + +The user's screenshot showed two permanent Traceability explanation paragraphs and a separate generic gesture-hint row. Direct Windows inspection of the released water-pressure example reproduced these. At a 1100×700 client size (1102×732 captured window), the Traceability canvas began around window y=470 and ended around y=692, leaving about 220 pixels for modeling. At the normal 1440×900 client size its top was around y=417. The release was opened from the existing downloaded package; only an in-memory projection switch was made and Undo restored the clean model before closure. + +The candidate moves general instructions into contextual Help, reusing the offline guide. Architecture, State and Process selection bars use a stable compact row. Allocation retains its full-width destination slot; a concise Arrange control sits beside the existing view-content and Help controls. Traceability retains its displayed-line count and existing actions. Active drawing/assignment feedback appears beside the operation outcome in the persistent status bar, with full text on hover. Operation errors must never be replaced by generic guidance. + +Help opens as an overlay and closes with Close or Escape. F1 opens the relevant diagram topic. The workspace, selected group, pending source/property/behavior drafts and camera remain owned by their existing state. Background user commands are rejected before specialized canvas/reference dispatch. Passive results retain their established validity checks. The editor remains the first child of a stable Stack while Help opens and closes. + +Rejected alternatives: ordinary navigation to the Guide page cleared selection and could reject Help while a behavior draft was pending; placing feedback beside the entire selection toolbar exhausted narrow-window width; unconditional status substitution hid operation failures. Independent source review identified these before acceptance. Hover-only help was rejected because the complete instructions need a keyboard-accessible route. + +[Editing workspace UX review](../docs/ui-review.md) is the development/review contract requested by the user. It covers persistent prose, actionable feedback, context preservation and independent native interaction checks. + +## Verification status + +Clean source `f83068757af885572f6b3f932d07233dd1b94b7e` passed `cargo build -p oa-desktop --locked` on Windows gnullvm. Its candidate executable SHA-256 is `c1a9b196ec03e86f049fa2aadb2b86bfcaa3f0fbae582a80ee39ee8adf0758e3e`. The [independent source review](compact-context-help-source-review-20260925.md) records the corrected source findings, including passive viewport updates while Help is open. + +Independent native review of that executable recovered approximately 61 pixels in normal Traceability, 114 pixels in minimum Traceability and 58 pixels in minimum Allocation. Help resizes, pointer-scrolls, selects the State topic, and closes through Close/Escape. The review also reproduced two acceptance failures: PageDown cannot scroll Help, and F1/Escape preserves a property or Process-creation draft but loses typing focus/caret continuation. These findings require correction and another native check; model-state unit tests alone do not cover internal widget focus. The idle State-canvas gesture sentence is also removed in the successor; active/pending and hovered-item feedback retain their stable slot. + +The initial focused test run passed nine and failed one: the allocation test fixture used the default Overview projection before asserting allocation ownership. A separate ten-case mounted geometry run passed nine and failed the destination's existing 400-pixel minimum-width check. Sharing its row with the verbose Arrange action reduced that slot to 328 pixels at minimum size. The successor fixes the fixture explicitly and restores the full destination row without weakening its width check. The original failed logs are preserved in the [native/test evidence](experiments/compact-help-20260925/README.md). These diagnostic runs began before the successor edits and are not frozen-source acceptance of those edits. + +Frozen successor `5657a996ed2cefb1fa84ef967b655eaf8f9f6817` passed formatting, strict all-target desktop Clippy and the Windows GUI build. The full desktop run passed 1,538 tests, ignored seven and failed one new mounted Help test before Help opened: its synthetic multi-character KeyPressed event inserted only the first character, as the actual Iced text input specifies. The final correction sends individual character events and retains the exact-caret, scrolling and IME assertions. The existing allocation width and ownership checks and new modifier/pointer cancellation checks passed. See the [preserved successor evidence](experiments/compact-help-20260925/candidate-5657/review.md) and logs; the failed run is not reported as a passing suite. + +Independent native review of that exact executable confirmed keyboard Help scrolling, precise Inspector and Process-draft caret continuation after Help, resize, retained State tool state and complete allocation-error tooltips. Minimum Allocation recovers approximately 64 pixels with the full destination slot; minimum Traceability recovers 114 pixels. The reviewer found no new blocker within that scope. + +Final source `6e7c4ddaf0775198384a8c4882809ea8e14b2976` passes formatting, strict desktop/all-target Clippy, GUI build and 125 focused Help/allocation/guide tests (zero failures/ignores). The corrected mounted caret test now executes its complete assertions. Unchanged evidence from the earlier full run is retained at its original source; the remaining 1,421 desktop cases were not rerun at the final source. The initial final GUI link failed when the disk filled; after the user expanded the disk, the same-source rebuild passed. The failed log remains preserved. + +The [final native report](experiments/compact-help-20260925/candidate-6e7c/review.md) directly verifies cancellation status, guide wording, native group selection through context menus, primary Inspector changes, long-name controls at minimum size, exact caret return after both Help dismissal routes, and Apply/Undo/Redo/Undo recovery. Independent source review found no blocker in the final small delta. The watcher records exit 0 and empty stdout/stderr; all 37 copied model files still match the original after closure. An early transient OSK/modifier obstruction occurred before model loading and is recorded separately from app behavior. No blocking defect was found within this contribution's review scope. Shared integration and release admission remain in issue 39; full product completion is not claimed. + +Required native checks: minimum and normal windows; Traceability and Allocation space comparison; multi-selection with long names; Help/F1/Close/Escape with property and behavior drafts; editor focus and canvas scroll/camera restoration; active feedback plus operation failure; State and Process controls; subsequent edit/Undo/Redo and source preservation. Linux remains deferred under the recorded user instruction. diff --git a/harness/compact-context-help-source-review-20260925.md b/harness/compact-context-help-source-review-20260925.md new file mode 100644 index 00000000..2085fc48 --- /dev/null +++ b/harness/compact-context-help-source-review-20260925.md @@ -0,0 +1,44 @@ +# Compact contextual help: independent source review + +Review date: 2026-09-25. Scope: Gitea issue #39 compact editing chrome and contextual Help, reviewed against base `715036e1` and the issue screenshot. Reviewed source includes `e0812b3932fbb36100516f0981dc9c646eeda56d` plus the subsequent local passive-geometry admission patch and regression test in this change. This is source-review evidence, not native acceptance or executed test evidence. + +Criteria: [editing workspace UX review](../docs/ui-review.md), especially preserving pending edits and selection, stable canvas geometry, accessible disclosure, and retaining actionable feedback. + +## Findings addressed in source + +- The initial Help action used ordinary page navigation, clearing multiselection and selected bends, including before a pending behavior form rejected navigation. Contextual Help now overlays the existing workspace. Close/Escape changes reading state without navigating or applying drafts. +- App-level modal admission originally ran after allocation and reference-picker fast paths. Help now gates user messages at the beginning of `App::update`; allocation and behavior keyboard ownership are also disabled while Help is open. +- Combining live gesture feedback with multiselection controls could leave no width for feedback at the configured minimum window size. Selection controls now keep a compact, fixed-height row; current drawing/allocation feedback uses the existing application footer. +- Footer feedback initially replaced operation status, concealing errors while a promoted edge or drawing tool remained selected. The footer now retains operation status alongside feedback and exposes complete text in its tooltip. +- Conditional modal wrapping could recreate the editor widget tree. Both closed and open states now use the same outer Stack with the workspace as its first child. +- State/Process selection guidance removed from persistent chrome was missing from its target Help articles. The States and Chains articles now include group selection, primary-properties semantics and relevant tool/read-only guidance. +- The new early modal gate initially rejected passive behavior viewport/scroll notifications. It now admits Process/Scenario geometry and State viewport notifications to their existing context-validated handlers, preventing resize observations from being lost while Help is open. + +## Regression coverage added + +[`context_help_tests.rs`](../crates/oa-desktop/src/app/context_help_tests.rs) covers property drafts and multiselection, source drafts, pending state-transition forms, blocked background actions, contextual Help topic dispatch, Close/Escape, allocation input ownership, queued inspector reference-picker admission, and valid/stale Process viewport measurements during Help and after closing. Assertions include accepted-model snapshot identity and absence of history changes where applicable. Passive geometry intentionally validates document/owner/revision; stale pointer epochs alone do not invalidate measurements. + +The reviewer did not compile or execute these tests. Suggested focused command: `cargo test -p oa-desktop context_help_tests`. The integration owner records actual execution and native results separately. + +## Follow-up from native review + +Native review of the subsequent candidate found that contextual Help did not respond to PageDown and that Escape reached a focused underlying text input, dropping its typing focus. The follow-up patch adds a Help-only keyboard subscription and article-ID-targeted scrolling (40-pixel arrows, 90% of the actual viewport for PageUp/Down, Home/End), using Iced's bounds-clamped scroll state. A stable workspace input barrier preserves the actual editor caret while suppressing key, pointer, touch and IME input behind Help; modifier changes and passive geometry continue. Opening Help retires held pointer gestures through cancellation releases with all authored actions discarded, while forwarding redraw/layout invalidation. This also prevents a held canvas pan or text selection from resuming after release behind Help. + +New mounted regressions exercise the production App tree and subscriptions for keyboard scrolling, unchanged background scroll positions, precise Inspector caret return, IME exclusion, Shift release, and held-pan retirement. A real text-input widget regression checks selection-drag retirement while preserving its caret. The allocation ownership fixture was corrected to explicitly request Allocation, because `ensure_diagram` creates Overview. These follow-up changes were formatted and source-reviewed here; compilation, execution and native acceptance remain the integration owner's checks. + +A second, read-only critic reviewed the follow-up independently of its implementation. It found and prompted corrections for stale modifiers, IME leakage and interrupted pointer gestures. Its final read found no further blocking source defect in the input barrier, cancellation, passive-event handling or relocated Arrange control. The separate native reviewer supplied the original keyboard/focus failures. Neither source review establishes executed or native acceptance of the successor. + +## Scope and remaining verification + +A final independent read-only source review covered the small post-`5657a996` +delta. It confirmed that the mounted typing fixture must send one KeyPressed per +character because Iced consumes the first scalar, with the original caret/IME +assertions retained. Arrange cancellation now replaces only its own obsolete +armed status, preserving unrelated errors; input epochs and model commands are +unchanged. The guide names the actual Arrange control. No blocking finding was +identified in that delta. Actual executed and native evidence remains separately +identified by source in the design record and evidence index. + +Production changes reviewed: desktop App messages/admission, allocation input ownership, Escape bridging, behavior keyboard ownership, architecture/State/Process toolbar layout, guide article disclosure and footer feedback; supporting architecture/UI-review documentation. Regression tests and this record are review artifacts. No model schema, persistence format or authored-model transformation is introduced. + +No further concrete source blocker was identified after the fixes above. Native checks remain necessary at 1100×700 and a representative normal size: Help discovery and keyboard reading/dismissal, focus and caret return, preservation of canvas camera/selection and form drafts, resize while Help is open, multiselection control visibility, allocation refusal/destination feedback, current operation failures, and stable canvas bounds through selection/gesture changes. Source inspection and App tests do not establish layout quality, keyboard scrolling, pointer behavior or usability. diff --git a/harness/compact-help-validation-20261001.md b/harness/compact-help-validation-20261001.md new file mode 100644 index 00000000..3dbb5874 --- /dev/null +++ b/harness/compact-help-validation-20261001.md @@ -0,0 +1,41 @@ +# Compact diagram Help: Windows validation + +The source contribution for [issue 39](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/39) +is based on released `715036e132677dd2bc2fb37ed316d93dc9987aec`; final production/test +source is `6e7c4ddaf0775198384a8c4882809ea8e14b2976`. It removes permanent canvas +instructions, preserves compact stable controls and offers contextual Help/F1. +Model schema, core, server, dependencies and persistence code are unchanged. + +[Decision and acceptance boundary](compact-context-help-20260925.md), +[independent source review](compact-context-help-source-review-20260925.md), +[native reports, screenshots and gate logs](experiments/compact-help-20260925/README.md) +and [development UX criteria](../docs/ui-review.md) are authoritative for this change. + +Windows gnullvm / Rust 1.98.1: formatting, strict desktop/all-target Clippy and the +GUI build pass. Final focused run: **125 passed, zero failed/ignored**. Earlier +full desktop execution at `5657a996` passed 1,538, failed one new test's typing +setup and ignored seven; the corrected test executes fully in the final passing +run. This is not a claim of a full-suite run at the final commit. The initial +final link failed with a full disk and is retained; the recovered build succeeds. + +Final Studio SHA256: +`d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e`. +Matching runtime SHA256: +`f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4`. + +Independent native checks pass group selection/primary properties, Help dismissal +and exact caret continuation, long names at 1100×700, Arrange cancellation, +guide consistency and Apply/Undo/Redo/Undo. Earlier versioned native checks cover +Process drafts, State tools, Help resize and actual operation refusals. Minimum +Allocation recovers about 64 pixels; minimum Traceability about 114 pixels. +Final process exit is 0, both logs are empty, and all 37 copied example files +remain unchanged. Native counts do not establish whole-Project equality; mounted +regressions provide the separately scoped model/history checks. + +The application remains an unfinished development preview. The separate +projection/navigation, outgoing-drag, icon, grid/performance and State-label +contributions are outside this source. Dense routes/labels, remaining Scenario +group adapters, quantities/calculations/constraints, maintained libraries, +complete OA/SA acceptance and broad accessibility/DPI coverage remain unfinished. +Linux/WSL checks remain excluded by the user's recorded instruction. This change +does not accept the complete first release. diff --git a/harness/experiments/compact-help-20260925/README.md b/harness/experiments/compact-help-20260925/README.md new file mode 100644 index 00000000..b128694d --- /dev/null +++ b/harness/experiments/compact-help-20260925/README.md @@ -0,0 +1,62 @@ +# Compact Help native evidence + +Branch-specific evidence for [issue 39](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/39). +The [design record](../../compact-context-help-20260925.md) owns the decision and current acceptance boundary. + +`native/` contains the Windows baseline captures from published source +`715036e132677dd2bc2fb37ed316d93dc9987aec`. +`candidate-f830/` preserves the independent review of source +`f83068757af885572f6b3f932d07233dd1b94b7e`, including its two failed Help workflows, +original screenshots, exact executable/runtime hashes and successful build log. +These observations must not be relabeled as acceptance of a successor executable. + +`candidate-5657/` preserves the next frozen source's build, strict all-target +Clippy, full desktop test log and independent native review. Formatting, Clippy +and build passed. Tests: 1,538 passed, one failed, seven ignored. The sole failure +was the new caret test's synthetic typing setup before Help opened; `help-failure.log` +records its exact rerun. The next correction uses one character per key event. +The native report records corrected Help keyboard/caret behavior, minimum-window +layout and real operation-refusal feedback, with explicit scope limitations. +Copied text logs have normalized line endings and trailing blank lines removed; +original local logs are retained. Image and fixture hashes are unchanged. + +`candidate-6e7c/` preserves final source +`6e7c4ddaf0775198384a8c4882809ea8e14b2976`: formatting and strict desktop/all-target +Clippy pass, the recovered GUI build passes, and 125 focused Help/allocation/guide +tests pass with zero failures/ignores. `build-diskfull.log` preserves the first +failed link; no code change was needed for the recovered build. Its native report +and 15 screenshots cover cancellation, guide consistency, group/primary selection, +minimum-window long names, exact caret return and Undo/Redo/Undo. The runtime +receipt confirms exit 0 and empty logs. Post-close baseline comparison confirms +all 37 copied fixture files unchanged. The transient OSK observation happened +before loading the model and is explicitly retained. Prior source-specific +workflows remain attributed to their actual binaries. + +Reproduce final code checks on the documented Windows gnullvm/Rust 1.98.1 toolchain: + +```powershell +cargo fmt --all -- --check +cargo clippy -p oa-desktop --all-targets --locked -- -D warnings +cargo build -p oa-desktop --locked +cargo test -p oa-desktop --locked -- context_help_tests allocation_drag guide::tests --test-threads=1 +``` + +The initial test compilation began at that commit; successor work was edited +while it ran. `tests.log` (nine passed, one failed fixture precondition) and +`geometry-tests.log` (nine passed, one failed destination-width invariant) are +diagnostic evidence from that cycle, not frozen-source acceptance. The geometry +run reused its test executable without recompiling. The first command's +`allocation_drag_full_tree_tests` filter matched no tests; the second used the +actual `full_tree` filter plus the affected mounted State/Process checks. + +The review used a copy of `examples/release1/project.arcadia` from the published +Windows package. All 37 fixture files matched the baseline before the trial and +again after closing without saving. `baseline-proof.json` records those bytes. +The executable is a local development build, not a published release artifact. + +Reproduce the build using the documented Windows gnullvm toolchain and +`cargo build -p oa-desktop --locked`. Place its matching `libunwind.dll` beside the +executable, launch it, and open an isolated copy of the release1 example. Perform +the workflows and use the window sizes in [the native report](candidate-f830/review.md). +The baseline captures establish layout comparison; the report records actual +interaction results and explicit unverified workflows. diff --git a/harness/experiments/compact-help-20260925/candidate-5657/01-allocation-normal.png b/harness/experiments/compact-help-20260925/candidate-5657/01-allocation-normal.png new file mode 100644 index 00000000..3f65e731 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/01-allocation-normal.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/02-help-pagedown.png b/harness/experiments/compact-help-20260925/candidate-5657/02-help-pagedown.png new file mode 100644 index 00000000..58ae0e5a Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/02-help-pagedown.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/03-help-end.png b/harness/experiments/compact-help-20260925/candidate-5657/03-help-end.png new file mode 100644 index 00000000..49b5bd78 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/03-help-end.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/04-caret-after-escape.png b/harness/experiments/compact-help-20260925/candidate-5657/04-caret-after-escape.png new file mode 100644 index 00000000..aab5a5da Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/04-caret-after-escape.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/05-caret-after-close.png b/harness/experiments/compact-help-20260925/candidate-5657/05-caret-after-close.png new file mode 100644 index 00000000..9af58d90 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/05-caret-after-close.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/06-help-minimum-resized.png b/harness/experiments/compact-help-20260925/candidate-5657/06-help-minimum-resized.png new file mode 100644 index 00000000..b405be1a Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/06-help-minimum-resized.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/07-allocation-minimum.png b/harness/experiments/compact-help-20260925/candidate-5657/07-allocation-minimum.png new file mode 100644 index 00000000..b36e4507 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/07-allocation-minimum.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/08-arrange-tooltip-armed.png b/harness/experiments/compact-help-20260925/candidate-5657/08-arrange-tooltip-armed.png new file mode 100644 index 00000000..a96678ab Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/08-arrange-tooltip-armed.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/09-arrange-refusal.png b/harness/experiments/compact-help-20260925/candidate-5657/09-arrange-refusal.png new file mode 100644 index 00000000..a9b4dbee Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/09-arrange-refusal.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/10-assignment-refusal.png b/harness/experiments/compact-help-20260925/candidate-5657/10-assignment-refusal.png new file mode 100644 index 00000000..81c1ba59 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/10-assignment-refusal.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/11-refusal-tooltip.png b/harness/experiments/compact-help-20260925/candidate-5657/11-refusal-tooltip.png new file mode 100644 index 00000000..d3fd7894 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/11-refusal-tooltip.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/12-trace-minimum.png b/harness/experiments/compact-help-20260925/candidate-5657/12-trace-minimum.png new file mode 100644 index 00000000..cee0e875 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/12-trace-minimum.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/13-state-idle.png b/harness/experiments/compact-help-20260925/candidate-5657/13-state-idle.png new file mode 100644 index 00000000..2476d67d Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/13-state-idle.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/14-state-active-prompt.png b/harness/experiments/compact-help-20260925/candidate-5657/14-state-active-prompt.png new file mode 100644 index 00000000..7ccbbe6b Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/14-state-active-prompt.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/15-process-caret-restored.png b/harness/experiments/compact-help-20260925/candidate-5657/15-process-caret-restored.png new file mode 100644 index 00000000..b2c8f6b2 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-5657/15-process-caret-restored.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-5657/baseline-proof.json b/harness/experiments/compact-help-20260925/candidate-5657/baseline-proof.json new file mode 100644 index 00000000..a41c098f --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-5657/baseline-proof.json @@ -0,0 +1,49 @@ +{ + "baseline_binary": "2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399", + "baseline_source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "model_files": { + "evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f", + "oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c", + "sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230" + }, + "matching_files": 37, + "baseline_captures": { + "baseline-allocation-compact.png": "d92a0cca62a038dcf0894d92b37a64028342c2365e3fb8880ed597222123d96f", + "baseline-trace-compact.png": "b608a3d75612d8c06aacc094a7aebd12a0798ce30f2126c00bc3ad61a9103217", + "baseline-trace-normal.png": "6dfb6c595af4247aab3600da0e0a25ba4b11151436e9fc4a406f1036053f71d0" + } +} diff --git a/harness/experiments/compact-help-20260925/candidate-5657/build.json b/harness/experiments/compact-help-20260925/candidate-5657/build.json new file mode 100644 index 00000000..90a269b1 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-5657/build.json @@ -0,0 +1,6 @@ +{ + "buildExit": 0, + "runtime": "F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4", + "source": "5657a996ed2cefb1fa84ef967b655eaf8f9f6817", + "binary": "83CCEFF8B713491AFEE92FFCAFE62B02F5EEA6A3D899F6F334848FDC7BB0D88D" +} diff --git a/harness/experiments/compact-help-20260925/candidate-5657/build.log b/harness/experiments/compact-help-20260925/candidate-5657/build.log new file mode 100644 index 00000000..4f3117ae --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-5657/build.log @@ -0,0 +1,2 @@ + Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) + Finished `dev` profile [unoptimized] target(s) in 2m 12s diff --git a/harness/experiments/compact-help-20260925/candidate-5657/clippy.log b/harness/experiments/compact-help-20260925/candidate-5657/clippy.log new file mode 100644 index 00000000..682c3657 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-5657/clippy.log @@ -0,0 +1,6 @@ + Compiling oa-core v0.2.0 (C:\ar-compact-01a0d717\crates\oa-core) + Checking iced_widget v0.14.2 (C:\ar-compact-01a0d717\crates\vendor\iced_widget) + Compiling oa-server v0.2.0 (C:\ar-compact-01a0d717\crates\oa-server) + Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) + Checking iced v0.14.0 + Finished `dev` profile [unoptimized] target(s) in 4m 09s diff --git a/harness/experiments/compact-help-20260925/candidate-5657/help-failure.log b/harness/experiments/compact-help-20260925/candidate-5657/help-failure.log new file mode 100644 index 00000000..8e4a37d6 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-5657/help-failure.log @@ -0,0 +1,16 @@ + +running 1 test + +thread 'app::context_help_tests::mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret' (7368) panicked at crates\oa-desktop\src\app\context_help_tests.rs:389:5: +assertion `left == right` failed + left: "DSend" + right: "DRAFT Send" +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace +test app::context_help_tests::mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret ... FAILED + +failures: + +failures: + app::context_help_tests::mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1545 filtered out; finished in 1.56s diff --git a/harness/experiments/compact-help-20260925/candidate-5657/review.md b/harness/experiments/compact-help-20260925/candidate-5657/review.md new file mode 100644 index 00000000..8def4a3b --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-5657/review.md @@ -0,0 +1,32 @@ +# Independent native successor review + +Reviewed source `5657a996ed2cefb1fa84ef967b655eaf8f9f6817`; executable SHA-256 `83CCEFF8B713491AFEE92FFCAFE62B02F5EEA6A3D899F6F334848FDC7BB0D88D` independently rechecked after the run; runtime SHA-256 `F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4` from build.json. Used Windows native Computer Use, the isolated `model/project.arcadia`, normal 1440x900 and minimum 1100x700 client sizes (1442x932 and 1102x732 captures). The prior candidate report remains historical under `../candidate-f830/review.md`. + +## Result + +Both prior blocking native findings are corrected in the exercised workflows. No new blocking finding was observed in this bounded retest. This is not complete product, accessibility, multiselection or first-release acceptance. + +### Help keyboard reading and caret preservation + +1. In normal Allocation, focused inspector Name, selected its text, typed `LEFT RIGHT`, and pressed Ctrl+Left to put the caret before `RIGHT`. Opened Help with F1. PageDown visibly scrolled to lower sections; PageUp returned to the top; End reached the bottom; Home returned to the top; Down moved one increment and Up reversed it. Evidence: `02-help-pagedown.png`, `03-help-end.png`. +2. Pressed Escape, then typed `X` without refocusing. Name became exactly `LEFT XRIGHT`. Reopened with F1, clicked visible Close, then typed `Y` without refocusing. Name became exactly `LEFT XYRIGHT`. Thus keyboard reading did not move the background caret, and both dismissal paths preserved input continuation. Evidence: `04-caret-after-escape.png`, `05-caret-after-close.png`. Revert restored the accepted property. +3. Opened Help again and resized the native window to its minimum width and height through the native system menu. Help reflowed with Close reachable; End still reached the bottom and Escape returned to the same diagram. Evidence: `06-help-minimum-resized.png`. +4. At minimum size, opened System functional chain `Handle a pressure alarm`, chose W, clicked blank canvas, and entered `LEFT RIGHT` in the pending contribution Name. Ctrl+Left, F1, End, Escape, then `X` produced exactly `LEFT XRIGHT` without refocusing. Create remained disabled with its missing-source explanation and Cancel reachable. Cancel preserved the accepted model. Evidence: `15-process-caret-restored.png`. + +### Compact controls and actionable feedback + +- Normal and minimum Allocation show projection, Help and Arrange together, with a separate full-width Destination slot. At minimum size the canvas begins near y=350 versus baseline y=414, approximately 64 pixels recovered. Changing from no selection to a selected work card and exercising refused drags did not move the canvas boundary. Evidence: `01-allocation-normal.png`, `07-allocation-minimum.png`. +- Clicking Arrange displays `Arrange ✓`; the tooltip explains one-drag scope, Alt+A and Escape. Escape removes the check; Alt+A arms it again. Evidence: `08-arrange-tooltip-armed.png`. +- With Arrange armed, dragged `Assess pressure alarm` from Control room toward Field technician. The operation was refused with the visible footer message `Make room or adjust the view, then drag again. Zoom in to read the work and destination.` The accepted model remained saved and the work stayed allocated to Control room. Evidence: `09-arrange-refusal.png`. +- Repeated the drag without Arrange. Core validation refused the reassignment with `exchange_allocation_performer: Actual activity allocations must agree with one permitted communication direction; review the means or the activity allocations.` The shortened footer remained visible, and pointing at it exposed the complete readable explanation. The selected activity and accepted model remained unchanged. Evidence: `10-assignment-refusal.png`, `11-refusal-tooltip.png`. +- Changed View content to Traceability. Count, Add existing elements, Review layer traces, View visibility and Help all remain reachable at minimum width. Canvas starts near y=356 versus baseline y=470, approximately 114 pixels recovered. Undid this temporary projection change. Evidence: `12-trace-minimum.png`. +- Opened saved State view `5 · SA pressure supervision`: the generic idle canvas instruction is removed. Choosing +Region still shows its active creation prompt. F1 opens the States topic; Escape returns with +Region still selected, without creating an object. Evidence: `13-state-idle.png`, `14-state-active-prompt.png`. + +## Limitations and minor observations + +- The existing State active prompt still truncates at minimum width (`Create Region ... machine or composite s...`). This retest confirms it was retained, not that every pre-existing State prompt has complete narrow-window readability. +- The compact control says `Arrange`, while the guide still says `Arrange next drag`; its tooltip explains that wording. Minor consistency cleanup was reported to the integration owner; no user workflow failed because of it. +- Modifier-click/native multiselection and long-name group toolbar layout were not independently operated because the supported Computer Use API has no modifier-click/key-hold operation. Do not infer them from the single-selection screenshots. The parent owns mounted-widget verification separately. Source-editor caret behavior and full Scenario workflows were not repeated in this bounded successor retest. +- The approved native launch API does not expose stdout/stderr or process exit status. After Alt+F4, refreshed native window enumeration confirmed both successor application and console windows disappeared. No crash dialog was observed; this is not an asserted exit code or log inspection. + +No save was performed. A post-run hash comparison against baseline-proof.json found no changed files among all 37 copied fixture files. The UI returned to the saved baseline with 94 objects, 62 links and one model check before closure. Screenshots are supporting evidence; the results above describe actual input and observed responses. diff --git a/harness/experiments/compact-help-20260925/candidate-5657/tests.log b/harness/experiments/compact-help-20260925/candidate-5657/tests.log new file mode 100644 index 00000000..fc3dbce9 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-5657/tests.log @@ -0,0 +1,1569 @@ + Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) + Finished `test` profile [unoptimized] target(s) in 16m 35s + Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-c5b42126ba36cd38.exe) + +running 1546 tests +test allocation_drag::tests::allocation_artifact_and_manual_trace_cascades_are_named_and_refused ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_detects_hidden_moved_child_and_stationary_enclosure_growth ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_distributed_oa_sa_exact_scope_routes_source_history_and_anchor ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_noop_stale_tamper_target_and_all_selected_headers ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_performer_closure_does_not_acquire_incidental_semantic_root ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_preserves_existing_overlap_but_refuses_its_growth ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_preserves_roles_and_does_not_invent_unplaced_descendants ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_preserves_unrelated_folded_interior_diagnostic_boundary ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_simultaneous_roots_may_enter_each_others_vacated_bounds ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_validates_all_original_members_before_normalizing ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_checks_original_identity_and_visibility_before_normalization ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_distributed_parent_refuses_but_its_independent_leaves_can_reassign ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_finish_rejects_stale_project_and_each_tampered_result ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_normalizes_parent_child_and_assigns_unplaced_leaf_once ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_requires_non_anchor_selected_header_inside_viewport ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_unresolved_oa_role_leaf_accepts_explicit_target_but_not_outside ... ok +test allocation_drag::tests::assignment_tests::group_assignment_accumulates_stable_ids_and_aliases_without_partial_reuse ... ok +test allocation_drag::tests::assignment_tests::group_assignment_collateral_surviving_constraint_refuses_whole_semantic_candidate ... ok +test allocation_drag::tests::assignment_tests::group_assignment_deletes_only_own_routes_across_views_and_keeps_internal_flow ... ok +test allocation_drag::tests::assignment_tests::group_assignment_independent_performers_preserves_already_correct_provenance ... ok +test allocation_drag::tests::assignment_tests::group_assignment_source_failure_preserves_existing_history_and_retry_ids ... ok +test allocation_drag::tests::assignment_tests::group_assignment_unfolds_only_changed_destination_and_refuses_newly_exposed_overlap ... ok +test allocation_drag::tests::assignment_tests::group_assignment_uses_vacated_space_and_one_complete_route_owner_map ... ok +test allocation_drag::tests::assignment_tests::group_assignment_zero_delta_changes_semantics_once_and_then_is_noop ... ok +test allocation_drag::tests::cache_plan_uses_candidate_index_and_same_pixel_different_target_changes_preview ... ok +test allocation_drag::tests::collapsed_target_unfold_is_explicit_and_no_other_fold_changes ... ok +test allocation_drag::tests::direct_exit_revealing_another_role_performer_has_truthful_refusal ... ok +test allocation_drag::tests::explicit_different_performer_retains_advisory_role_warning ... ok +test allocation_drag::tests::folded_subtree_cannot_hide_new_collision ... ok +test allocation_drag::tests::geometry_refuses_new_overlap_bounds_and_invisible_headers_and_preserves_existing_overlap ... ok +test allocation_drag::tests::group_arrange_experiment::mixed_arrange_experiment_detects_moved_folded_child_collision ... ok +test allocation_drag::tests::group_arrange_experiment::mixed_arrange_experiment_detects_stationary_enclosure_growth_collision ... ok +test allocation_drag::tests::group_arrange_experiment::mixed_arrange_experiment_distributed_root_and_performer_can_translate_rigidly ... ok +test allocation_drag::tests::group_arrange_experiment::mixed_arrange_experiment_unrelated_folded_interiors_are_outside_diagnostic_domain ... ok +test allocation_drag::tests::malformed_scope_wrong_projection_duplicate_placement_and_stable_id_collision_refuse ... ok +test allocation_drag::tests::mixed_p_x_y_refuses_semantic_and_arrange_instead_of_stretching_destination ... ok +test allocation_drag::tests::oa_communication_incompleteness_remains_advisory_without_collateral_loss ... ok +test allocation_drag::tests::oa_sa_incoming_between_outgoing_preserve_identity_source_history_and_other_views ... ok +test allocation_drag::tests::oa_sa_one_leaf_move_refuses_when_ancestor_regrouping_introduces_unrelated_overlap ... ok +test allocation_drag::tests::oa_sa_one_leaf_reassignment_and_outward_move_regroup_ancestors_without_moving_sibling ... ok +test allocation_drag::tests::oa_sa_populated_collapsed_target_accepts_room_and_refuses_collision_without_relocating_contents ... ok +test allocation_drag::tests::oa_sa_state_owned_action_and_availability_reject_reassignment_atomically ... ok +test allocation_drag::tests::oa_sa_unfolding_prior_hidden_overlap_refuses_even_when_insertion_does_not_collide ... ok +test allocation_drag::tests::own_deleted_allocation_routes_may_disappear_in_every_diagram_only ... ok +test allocation_drag::tests::role_only_same_effective_performer_is_semantic_noop_and_outgoing_refuses ... ok +test allocation_drag::tests::sa_port_and_deferred_exchange_allocation_cascade_refuses_and_retarget_is_invalid ... ok +test allocation_drag::tests::same_performer_readability_preserves_snapped_noop_and_allocation_identity ... ok +test allocation_drag::tests::scope_detects_first_child_allocation_and_role_transfer_and_finish_rejects_live_edits ... ok +test allocation_drag::tests::selected_header_visibility_allows_viewport_edge_but_refuses_clipping ... ok +test allocation_drag::tests::snapped_noop_returns_no_command_and_keeps_source_revision_and_redo ... ok +test allocation_drag::tests::source_budget_refusal_keeps_project_bundle_history_and_retry_identity_exact ... ok +test allocation_drag::tests::surviving_constraint_mutation_is_refused_even_when_core_candidate_is_valid ... ok +test allocation_drag::tests::target_presentation_requires_accepted_identity_and_selected_header_visibility ... ok +test allocation_drag::tests::toolbar_identity_allows_exact_incoming_placement_at_old_label_overlap ... ok +test allocation_drag::tests::uniform_folded_grandchild_and_unplaced_scope_moves_exactly_q_and_all_l_oa_sa ... ok +test allocation_drag::tests::uniform_role_only_and_mixed_direct_role_composites_same_target_do_not_allocate ... ok +test allocation_drag::tests::uniformly_unassigned_composite_creates_only_stable_leaf_allocations_including_unplaced ... ok +test allocation_drag::tests::unrequested_view_option_cleanup_is_not_whitelisted ... ok +test allocation_drag::tests::unresolved_role_leaf_can_arrange_or_accept_explicit_target_without_guessing ... ok +test app::allocation_drag::tests::actual_canvas_origin_change_cancels_held_work_before_any_legacy_release ... ok +test app::allocation_drag::tests::arrange_is_one_gesture_and_snapped_noop_preserves_redo_and_source ... ok +test app::allocation_drag::tests::candidate_semantics_are_cached_per_destination_with_stable_ids_and_own_index ... ok +test app::allocation_drag::tests::destination_identity_does_not_describe_blocked_or_outside_viewport_as_unallocation ... ok +test app::allocation_drag::tests::frozen_collapsed_target_uses_only_visible_header_and_port_edge_controls_occlude ... ok +test app::allocation_drag::tests::frozen_targets_use_half_open_semantic_priority_and_refuse_incomparable_overlap ... ok +test app::allocation_drag::tests::full_tree::actual_app_tree_dirty_description_retains_focus_and_middle_caret_for_next_key ... ok +test app::allocation_drag::tests::full_tree::actual_app_tree_dirty_name_retains_focus_and_middle_caret_for_next_key ... ok +test app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable ... ok +test app::allocation_drag::tests::full_tree::actual_keyboard_arrange_shortcut_consumes_once_escape_cancels_and_dirty_owner_refuses ... ok +test app::allocation_drag::tests::full_tree::actual_rendered_canvas_pixels_do_not_change_when_toolbar_feedback_text_changes ... ok +test app::allocation_drag::tests::full_tree::actual_toolbar_hover_inspects_last_full_name_without_authorizing_an_outside_drop ... ok +test app::allocation_drag::tests::full_tree::control_focus::dirty_selected_pin_outer_ring_keeps_real_name_focus_and_caret ... ok +test app::allocation_drag::tests::group::allocation_bare_moves_cannot_bypass_armed_active_or_retired_lifetime ... ok +test app::allocation_drag::tests::group::completed_text_apply_rejects_old_allocation_packets_without_retiring_a_new_drag ... ok +test app::allocation_drag::tests::group::connection_lifetime::captured_connection_after_cancel_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::connection_lifetime::captured_connection_context_mismatches_preserve_the_current_session ... ok +test app::allocation_drag::tests::group::connection_lifetime::captured_connection_current_restart_and_pair_commit_after_tool_boundary ... ok +test app::allocation_drag::tests::group::group_arrange_work_and_performer_anchors_preserve_every_responsibility ... ok +test app::allocation_drag::tests::group::group_assignment_split_rebuild_preserves_primary_and_commits_one_complete_candidate ... ok +test app::allocation_drag::tests::group::group_out_and_back_assigns_at_zero_delta_then_true_noop_preserves_redo ... ok +test app::allocation_drag::tests::group::group_selection_aba_and_old_press_cannot_retire_a_new_token ... ok +test app::allocation_drag::tests::group::group_source_refusal_retains_primary_source_and_both_history_paths ... ok +test app::allocation_drag::tests::group::idle_group_press_rejects_selection_generation_aba_with_unchanged_other_stamps ... ok +test app::allocation_drag::tests::group::ordinary_off_grid_performer_out_and_back_is_noop_with_redo ... ok +test app::allocation_drag::tests::group::route_lifetime::captured_route_context_fields_independently_reject_before_retirement ... ok +test app::allocation_drag::tests::group::route_lifetime::current_route_commits_without_session_preserve_exact_route_history ... ok +test app::allocation_drag::tests::group::route_lifetime::same_context_route_attachment_after_selection_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::route_lifetime::same_context_route_commit_after_selection_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::route_lifetime::stale_route_attachment_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::route_lifetime::stale_route_commit_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::unsupported_group_click_collapses_but_threshold_crossing_never_becomes_click ... ok +test app::allocation_drag::tests::modal_roundtrip_equal_fit_undo_resize_and_focus_retire_press_before_replay ... ok +test app::allocation_drag::tests::mounted_clean_stationary_selects_exact_work_without_revision_or_legacy_apply ... ok +test app::allocation_drag::tests::mounted_dirty_port_press_cannot_fall_through_to_applying_port_selection ... ok +test app::allocation_drag::tests::mounted_dirty_property_press_does_not_select_apply_or_destroy_draft ... ok +test app::allocation_drag::tests::mounted_oa_sa_ordered_incoming_between_outgoing_are_exact_single_history_steps ... ok +test app::allocation_drag::tests::mounted_role_only_outgoing_refusal_retains_placement_and_same_performer_creates_no_allocation ... ok +test app::allocation_drag::tests::mounted_uniform_parent_moves_hidden_placements_and_assigns_only_leaves ... ok +test app::allocation_drag::tests::navigation_union::old_chooser_envelopes_preserve_a_current_canvas_gesture ... ok +test app::allocation_drag::tests::navigation_union::stale_gesture_packets_preserve_navigation_and_a_new_live_cancel_still_works ... ok +test app::allocation_drag::tests::oa_sa_clipped_selected_header_refuses_preview_release_and_retries_without_partial_source_or_history ... ok +test app::allocation_drag::tests::oa_sa_toolbar_identity_accepts_exact_receiver_and_collapsed_header_drag ... ok +test app::allocation_drag::tests::outside_release_is_cancel_and_does_not_remove_an_assignment ... ok +test app::allocation_drag::tests::pending_behavior_draft_refuses_actual_work_press_and_equal_document_replacement_retires_packet ... ok +test app::allocation_drag::tests::release_uses_ordered_native_position_before_later_motion_in_same_batch ... ok +test app::allocation_drag::tests::same_snapped_position_on_opposite_shared_border_rebuilds_semantics_even_if_layout_refuses ... ok +test app::allocation_drag::tests::source_and_modal_admission_reject_prebuilt_clean_press_without_selecting ... ok +test app::allocation_drag::tests::source_refusal_is_atomic_and_a_new_gesture_can_retry_against_live_revision ... ok +test app::allocation_drag::tests::stale_packets_do_not_cancel_a_newer_token_and_each_release_is_consumed_once ... ok +test app::allocation_drag::tests::toolbar_destination_names_transformed_target_whose_header_is_clipped ... ok +test app::allocation_drag::tests::toolbar_status_leaves_transformed_top_edge_work_header_readable ... ok +test app::architecture_authoring::tests::architecture_allocated_work_is_root_owned_and_one_exact_history_change ... ok +test app::architecture_authoring::tests::architecture_blank_names_and_escape_never_accept_placeholder_or_rename ... ok +test app::architecture_authoring::tests::architecture_captured_escape_does_not_cancel_other_controls_or_placement ... ok +test app::architecture_authoring::tests::architecture_f2_routes_selected_node_to_inline_rename_and_exact_undo ... ok +test app::architecture_authoring::tests::architecture_first_focused_input_escape_cancels_create_and_rename ... ok +test app::architecture_authoring::tests::architecture_invalid_click_cannot_poison_inline_or_checkpoint_geometry ... ok +test app::architecture_authoring::tests::architecture_stale_submit_keeps_create_and_rename_visible_and_exact ... ok +test app::architecture_authoring::tests::traceability::traceability_default_does_not_change_creation_or_ordinary_picker_guards ... ok +test app::architecture_authoring::tests::traceability::traceability_existing_defaults_show_opposite_layer_and_place_only_one_node ... ok +test app::architecture_authoring_tests::architecture_cancelled_gesture_cannot_commit_a_later_named_draft ... ok +test app::architecture_authoring_tests::architecture_canvas_left_click_uses_world_coordinate_once_at_zoom_and_pan ... ok +test app::architecture_authoring_tests::architecture_checkpoint_retains_exact_name_point_and_fresh_binding_without_commands ... ok +test app::architecture_authoring_tests::architecture_context_choices_are_small_and_system_is_singleton ... ok +test app::architecture_authoring_tests::architecture_contextual_allocation_creates_work_relation_and_node_in_one_undo ... ok +test app::architecture_authoring_tests::architecture_creation_names_before_commit_preserves_camera_and_undoes_once ... ok +test app::architecture_authoring_tests::architecture_existing_inventory_is_contextual_and_placement_never_implies_allocation ... ok +test app::architecture_authoring_tests::architecture_f2_rename_preserves_identity_placement_and_atomic_history ... ok +test app::architecture_authoring_tests::architecture_name_survives_rejected_click_resize_navigation_and_escape_is_explicit ... ok +test app::architecture_authoring_tests::architecture_rejected_submission_keeps_inline_name_visible_and_invalid_click_is_ignored ... ok +test app::architecture_authoring_tests::basic_transition_explicit_overview_focus_wins_over_an_already_populated_architecture ... ok +test app::behavior_lifecycle_tests::incomplete_behavior_form_is_dirty_close_save_retains_it_and_cancel_allows_switching ... ok +test app::behavior_lifecycle_tests::passive_behavior_canvas_events_do_not_apply_property_drafts ... ok +test app::behavior_lifecycle_tests::pending_behavior_blocks_navigation_property_edits_and_model_history ... ok +test app::behavior_lifecycle_tests::pending_behavior_blocks_source_creation_and_source_history_replay ... ok +test app::behavior_lifecycle_tests::save_prepares_behavior_before_opening_destination_and_cancel_keeps_one_undo ... ok +test app::behavior_lifecycle_tests::source_writeback_failure_keeps_typed_behavior_form_for_repair_and_one_undo ... ok +test app::behavior_removal_tests::mounted_behavior_clean_inspector_click_and_tab_own_delete_then_f6_returns_to_canvas ... ok +test app::behavior_removal_tests::mounted_behavior_clean_text_focus_and_modifiers_cannot_delete_selected_occurrence ... ok +test app::behavior_removal_tests::mounted_behavior_pan_and_stale_removal_intent_do_not_delete ... ok +test app::behavior_removal_tests::mounted_behavior_tab_and_f6_retire_same_batch_delete_and_window_focus ... ok +test app::behavior_removal_tests::mounted_process_delete_occurrence_or_link_preserves_reusable_work_and_source_history ... ok +test app::behavior_removal_tests::mounted_qualified_process_child_delete_refuses_outer_reference_and_shared_definition ... ok +test app::behavior_removal_tests::mounted_scenario_delete_message_or_participant_preserves_reusable_targets ... ok +test app::behavior_removal_tests::mounted_scenario_fragment_and_branch_delete_only_owned_occurrences ... ok +test app::behavior_removal_tests::mounted_scenario_use_delete_keeps_definition_and_second_use_and_rejects_owner_replay ... ok +test app::checkpoints::tests::checkpoint_completion_releases_the_writer_while_a_context_menu_is_open ... ok +test app::checkpoints::tests::checkpoint_inline_create_and_rename_restore_focus_without_changing_drafts_or_history ... ok +test app::checkpoints::tests::checkpoint_noninline_contexts_keep_other_focus_and_still_lint ... ok +test app::checkpoints::tests::discard_and_close_waits_for_the_late_checkpoint_then_retires_it ... ok +test app::checkpoints::tests::home_resume_keeps_state_view_while_explicit_architecture_remains_reachable ... ok +test app::checkpoints::tests::home_resume_retains_invalid_source_and_property_drafts ... ok +test app::checkpoints::tests::home_resume_returns_to_each_actual_workspace_without_model_edits ... ok +test app::checkpoints::tests::malformed_checkpoint_does_not_replace_the_current_model ... ok +test app::checkpoints::tests::recent_and_recovery_navigation_respect_unsaved_decision ... ok +test app::checkpoints::tests::restored_copy_keeps_raw_property_and_requires_save_without_local_or_hosted_binding ... ok +test app::checkpoints::tests::saving_an_older_snapshot_keeps_recovery_for_newer_unsaved_work ... ok +test app::checkpoints::tests::stale_write_completion_cannot_recover_a_discarded_document ... ok +test app::checkpoints::tests::walkthrough_request_keeps_unfinished_source_behind_the_normal_pending_guard ... ok +test app::context_help_tests::context_help_accepts_live_process_viewport_and_rejects_stale_measurements ... ok +test app::context_help_tests::context_help_barrier_retires_text_selection_drag_without_changing_the_caret ... ok +test app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch ... ok +test app::context_help_tests::context_help_escape_preserves_pending_behavior_form_and_blocks_submit ... ok +test app::context_help_tests::context_help_f1_selects_scenario_topic_without_leaving_the_workspace ... ok +test app::context_help_tests::context_help_preserves_group_property_draft_camera_and_model ... ok +test app::context_help_tests::context_help_rejects_a_reference_picker_open_queued_from_the_inspector ... ok +test app::context_help_tests::context_help_retains_source_draft_and_rejects_background_source_input ... ok +test app::context_help_tests::mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret ... FAILED +test app::context_help_tests::mounted_context_help_observes_modifier_release_before_plain_canvas_click ... ok +test app::context_help_tests::mounted_context_help_retires_held_pan_without_replaying_its_release ... ok +test app::data_paging_lifecycle_tests::paging_preserves_same_context_and_resets_on_layer_or_document_replacement ... ok +test app::diagram_focus_tests::mounted_f2_requires_canvas_focus_and_yields_to_clean_inspector ... ok +test app::diagram_focus_tests::mounted_selection_strip_keeps_canvas_and_fitted_camera_fixed_for_empty_single_group_and_mixed ... ok +test app::diagram_focus_tests::mounted_shift_before_canvas_focus_toggles_exact_node_without_granting_keyboard_focus ... ok +test app::diagram_focus_tests::mounted_shift_held_before_suspension_survives_without_another_modifier_event ... ok +test app::diagram_focus_tests::mounted_shift_release_or_window_unfocus_during_suspension_does_not_restore_stale_shift ... ok +test app::diagram_focus_tests::mounted_suspended_modifiers_are_passive_and_survive_until_resumed_click ... ok +test app::diagram_focus_tests::mounted_unfocused_typing_and_delete_remain_denied_after_passive_modifiers ... ok +test app::diagram_focus_tests::mounted_window_unfocus_resets_held_shift_before_next_canvas_press ... ok +test app::diagram_removal_tests::captured_confirmation_rejects_selection_document_revision_and_placement_changes ... ok +test app::diagram_removal_tests::mounted_allocation_work_click_then_delete_without_redraw_removes_placement_once ... ok +test app::diagram_removal_tests::mounted_bend_delete_has_priority_and_semantic_edge_delete_is_confirmed ... ok +test app::diagram_removal_tests::mounted_clean_text_programmatic_focus_and_tab_remove_canvas_keyboard_ownership ... ok +test app::diagram_removal_tests::mounted_inspector_can_take_focus_during_passive_save ... ok +test app::diagram_removal_tests::mounted_oa_sa_delete_hides_exact_placement_and_round_trips_source_and_model ... ok +test app::diagram_removal_tests::mounted_passive_save_never_grants_canvas_focus_or_restores_window_lost_focus ... ok +test app::diagram_removal_tests::mounted_passive_save_retires_held_canvas_drag_but_allows_a_fresh_drag ... ok +test app::diagram_removal_tests::mounted_placement_properties_selection_supports_hide_and_model_delete ... ok +test app::diagram_removal_tests::mounted_programmatic_canvas_entry_needs_no_mouse_focus_boolean ... ok +test app::diagram_removal_tests::mounted_removal_intents_reject_stale_selection_revision_owner_and_document ... ok +test app::diagram_removal_tests::mounted_revision_and_history_preserve_the_actual_canvas_or_inspector_focus_owner ... ok +test app::diagram_removal_tests::mounted_shift_delete_captures_target_cancel_escape_and_confirmation_replay ... ok +test app::diagram_removal_tests::mounted_state_action_and_internal_rows_delete_relations_and_preserve_reused_work ... ok +test app::diagram_removal_tests::mounted_state_delete_uses_state_placement_and_preserves_architecture_placement ... ok +test app::diagram_removal_tests::mounted_window_modal_dirty_and_modifier_boundaries_retire_delete_focus ... ok +test app::diagram_removal_tests::navigation_union::port_navigation_then_canvas_delete_preserves_owner_and_restores_exact_history ... ok +test app::diagram_removal_tests::navigation_union::state_row_navigation_then_canvas_delete_preserves_work_and_restores_exact_history ... ok +test app::diagram_reveal::tests::actual_window_resize_before_first_measurement_retains_focus_for_the_new_context ... ok +test app::diagram_reveal::tests::all_reveal_surfaces_recenter_once_after_the_real_viewport_and_preserve_authored_state ... ok +test app::diagram_reveal::tests::malformed_or_wrong_stamp_measurements_cannot_poison_a_pending_reveal ... ok +test app::diagram_reveal::tests::user_camera_edit_and_navigation_cancel_deferred_focus_without_late_snapping ... ok +test app::diagram_selection_tests::changing_visible_view_follows_its_clean_inspector_without_a_model_edit ... ok +test app::diagram_selection_tests::diagram_switch_preserves_an_independent_semantic_inspection ... ok +test app::diagram_selection_tests::diagram_uuid_edit_follows_the_same_view_or_a_different_picker_target ... ok +test app::diagram_selection_tests::invalid_view_draft_blocks_the_switch_and_retains_raw_input ... ok +test app::diagram_selection_tests::stale_diagram_choice_never_applies_an_unrelated_valid_draft ... ok +test app::diagram_selection_tests::valid_pending_view_edit_applies_to_old_view_then_inspects_the_new_view ... ok +test app::diagram_usages::tests::accepted_new_chooser_retires_old_measurement_without_blocking_future_viewports ... ok +test app::diagram_usages::tests::allocation_navigation_keeps_relation_selection_and_exact_visual_work_lifetime ... ok +test app::diagram_usages::tests::asynchronous_lookup_is_loading_inert_and_retains_filter_until_completion ... ok +test app::diagram_usages::tests::caret_uses_exact_verified_alias_identity_and_preserves_source_cursor ... ok +test app::diagram_usages::tests::closed_lookup_keeps_slot_and_replacement_waits_for_exact_old_completion ... ok +test app::diagram_usages::tests::completion_after_cancel_releases_slot_without_reopening_or_moving ... ok +test app::diagram_usages::tests::completion_releases_worker_behind_busy_modal_without_navigation ... ok +test app::diagram_usages::tests::dirty_or_comment_caret_has_no_selected_object_fallback ... ok +test app::diagram_usages::tests::forged_completion_cannot_release_another_slot_or_admit_wrong_context ... ok +test app::diagram_usages::tests::old_panel_tokens_and_forged_targets_cannot_redirect_selection ... ok +test app::diagram_usages::tests::oversized_node_focus_stays_on_label_and_single_surface_query_excludes_other_views ... ok +test app::diagram_usages::tests::pending_source_behavior_and_modal_inputs_block_open_and_choose_without_loss ... ok +test app::diagram_usages::tests::port_navigation_selects_port_and_exact_visible_owner_without_editing_geometry ... ok +test app::diagram_usages::tests::query_presentation_snapshot_keeps_expansion_without_retaining_live_state ... ok +test app::diagram_usages::tests::repeated_preview_arrows_select_the_relation_and_highlight_the_exact_caller_link ... ok +test app::diagram_usages::tests::repeated_process_calls_reveal_the_chosen_caller_and_distinct_tile_camera ... ok +test app::diagram_usages::tests::repeated_scenario_messages_select_the_exact_occurrence_and_move_camera ... ok +test app::diagram_usages::tests::reset_keeps_old_worker_slot_and_only_new_document_results_are_admitted ... ok +test app::diagram_usages::tests::revision_retarget_and_document_change_make_old_destinations_inert ... ok +test app::diagram_usages::tests::saved_node_and_edge_navigation_preserve_whole_sources_and_actual_history ... ok +test app::diagram_usages::tests::saved_scenario::explicit_saved_layout_repair_undo_redo_requeries_authored_and_fallback_geometry_without_extra_history ... ok +test app::diagram_usages::tests::saved_scenario::retargeted_saved_view_cannot_reveal_a_former_owner_occurrence ... ok +test app::diagram_usages::tests::saved_scenario::saved_a_b_a_rejects_old_visit_and_panel_callbacks_before_deferred_measurement ... ok +test app::diagram_usages::tests::saved_scenario::saved_chooser_and_explicit_reveal_preserve_complete_source_and_actual_undo_redo ... ok +test app::diagram_usages::tests::saved_scenario::saved_queries_use_each_actual_presentation_and_keep_repeated_appearances_and_references_opaque ... ok +test app::diagram_usages::tests::saved_scenario::saved_reveal_and_chooser_refuse_source_property_and_behavior_drafts ... ok +test app::diagram_usages::tests::stale_caret_completion_never_opens_diagrams_for_current_selection ... ok +test app::diagram_usages::tests::stale_open_context_cannot_replace_a_panel ... ok +test app::diagram_usages::tests::stale_revision_completion_refreshes_asynchronously_without_activating ... ok +test app::diagram_usages::tests::state_row_navigation_has_exact_visual_row_without_retargeting_the_selected_relation ... ok +test app::diagram_usages::tests::tree_origin_captures_subject_and_never_falls_back_to_current_selection_or_name ... ok +test app::diagram_usages::tests::whole_surface_camera_fits_huge_extent_while_target_camera_remains_readable ... ok +test app::diagram_usages::tests::worker_failure_finishes_loading_and_can_be_retried_without_losing_sources ... ok +test app::direct_scenario_tests::direct_scenario_camera_details_and_real_resize_invalidate_only_pointer_context ... ok +test app::direct_scenario_tests::direct_scenario_creation_and_reorder_preserve_selection_and_each_undo_once ... ok +test app::direct_scenario_tests::direct_scenario_rejects_every_stale_context_and_preserves_property_drafts ... ok +test app::direct_scenario_tests::direct_scenario_source_failure_and_navigation_keep_form_until_success ... ok +test app::escape::tests::dismissed_picker_ignores_a_queued_click_in_its_old_option_area ... ok +test app::escape::tests::ignored_tooltip_escape_preserves_modal_priority_and_rejects_stale_focus ... ok +test app::escape::tests::initially_closed_picker_handles_open_then_escape_in_one_runtime_batch ... ok +test app::escape::tests::mounted_creation_name_escape_keeps_pending_modal_priority ... ok +test app::escape::tests::picker_overlay_escape_closes_once_reopens_selects_and_retains_outside_click ... ok +test app::escape::tests::picker_overlay_precedes_focused_input_and_creation_source_drafts ... ok +test app::escape::tests::toggling_bridge_policy_retains_focused_child_state ... ok +test app::hosted::tests::hosted_actual_app_tasks_publish_edit_conflict_correct_credentials_reload_and_open ... ok +test app::hosted::tests::hosted_catalog_invalidation_follows_service_writes_and_observed_revision_changes ... ok +test app::hosted::tests::hosted_catalog_search_credentials_and_failed_refresh_never_mix_result_scopes ... ok +test app::hosted::tests::hosted_changed_bound_head_does_not_invalidate_another_services_empty_filter ... ok +test app::hosted::tests::hosted_conflict_fetches_review_without_adoption_and_reload_is_undoable ... ok +test app::hosted::tests::hosted_detached_drafts_and_recovery_remain_available_after_rejected_publish ... ok +test app::hosted::tests::hosted_failed_cross_service_publication_checks_and_reloads_its_own_resource ... ok +test app::hosted::tests::hosted_failed_or_cancelled_local_open_keeps_the_existing_document_and_destination ... ok +test app::hosted::tests::hosted_invalid_and_detached_source_drafts_never_start_network_writes ... ok +test app::hosted::tests::hosted_invalid_local_open_repair_saves_locally_and_never_replaces_old_resource ... ok +test app::hosted::tests::hosted_modal_blocks_underlying_edits_and_credentials_are_redacted ... ok +test app::hosted::tests::hosted_new_revision_invalidates_filtered_catalog_even_without_a_displayed_row ... ok +test app::hosted::tests::hosted_only_successful_source_save_as_changes_the_active_destination ... ok +test app::hosted::tests::hosted_open_waits_for_unsaved_guard_and_failed_open_preserves_current_document ... ok +test app::hosted::tests::hosted_publish_acknowledges_only_the_sent_snapshot_and_retains_undo ... ok +test app::hosted::tests::hosted_stale_completions_do_not_clear_current_busy_or_adopt_another_document ... ok +test app::hosted::tests::hosted_unknown_save_is_acknowledged_by_exact_readback_without_retry ... ok +test app::lint_tests::committed_check_cache_follows_edit_and_undo_while_drafts_stay_separate ... ok +test app::lint_tests::lint_coalesces_work_and_rejects_obsolete_results ... ok +test app::lint_tests::prior_document_lint_cannot_enter_reopened_model_or_block_next_checks ... ok +test app::multiselect_tests::ancestor_and_child_selection_moves_child_exactly_once ... ok +test app::multiselect_tests::completed_text_apply_rejects_captured_ordinary_and_state_group_actions ... ok +test app::multiselect_tests::context_menu_dismissal_preserves_group_and_add_keeps_pre_menu_members ... ok +test app::multiselect_tests::deleting_primary_model_object_then_undo_does_not_restore_removed_selection_membership ... ok +test app::multiselect_tests::explicit_surface_navigation_and_return_never_resurrect_the_group ... ok +test app::multiselect_tests::hiding_a_group_removes_only_exact_placements_and_roundtrips_in_one_history_step ... ok +test app::multiselect_tests::legacy_hide_action_applies_to_the_complete_visible_group ... ok +test app::multiselect_tests::mixed_edge_or_port_selection_refuses_the_entire_move ... ok +test app::multiselect_tests::pending_valid_and_invalid_property_drafts_refuse_group_edits_without_applying_them ... ok +test app::multiselect_tests::queued_singleton_move_or_delete_cannot_partially_edit_a_new_group ... ok +test app::multiselect_tests::removing_primary_placement_from_model_preserves_exact_survivor_after_undo ... ok +test app::multiselect_tests::replacing_primary_occurrence_with_same_semantic_placement_does_not_retarget_selection ... ok +test app::multiselect_tests::selected_member_context_menu_exposes_and_executes_group_hide_not_singleton_deletion ... ok +test app::multiselect_tests::stale_operation_envelopes_have_no_selection_history_status_or_allocation_side_effects ... ok +test app::multiselect_tests::toggled_group_moves_model_and_source_once_and_keeps_primary_through_history ... ok +test app::port_view_tests::catalog_creation_follows_the_new_port_and_keeps_group_browsing_explicit ... ok +test app::port_view_tests::filtered_active_view_cannot_hide_a_created_port_when_eligible_owner_view_is_folded ... ok +test app::process_canvas::direct_process_dirty_source_blocks_canvas_creation_without_losing_text ... ok +test app::process_canvas::tests::direct_process_app_open_source_and_back_preserve_local_reference_identity ... ok +test app::process_canvas::tests::direct_process_app_same_owner_selection_preserves_tool_but_owner_change_resets_it ... ok +test app::process_canvas::tests::direct_process_app_save_details_resize_and_passive_geometry_keep_drafts_and_camera ... ok +test app::process_canvas::tests::direct_process_app_source_failure_retains_form_then_commits_once_and_selects_occurrence ... ok +test app::process_canvas::tests::direct_process_app_stale_context_dirty_source_and_properties_never_mutate ... ok +test app::process_canvas::tests::direct_process_append_empty_first_second_exchange_has_exact_source_history ... ok +test app::process_canvas::tests::process_zoom_retains_rejected_draft_and_guards_selection ... ok +test app::process_multiselect::tests::completed_text_apply_rejects_captured_process_reorder_without_retiring_current_state ... ok +test app::process_multiselect::tests::process_explicit_object_navigation_leaves_qualified_use_even_for_same_leaf_id ... ok +test app::process_multiselect::tests::process_group_reverse_click_order_changes_only_owner_steps_and_undoes_once ... ok +test app::process_multiselect::tests::process_menu_add_uses_rebound_epoch_and_preserves_existing_primary_membership ... ok +test app::process_multiselect::tests::process_mixed_link_and_cross_column_groups_refuse_whole_operation ... ok +test app::process_multiselect::tests::process_noop_group_and_legacy_reorder_preserve_history_camera_and_pending_reveal ... ok +test app::process_multiselect::tests::process_open_current_qualified_primary_and_catalog_navigation_restore_editable_draft ... ok +test app::process_multiselect::tests::process_open_local_reference_after_qualified_inspection_returns_local_reference ... ok +test app::process_multiselect::tests::process_pending_properties_source_form_tool_and_busy_never_implicitly_apply_or_change_group ... ok +test app::process_multiselect::tests::process_qualified_definition_back_restores_exact_invocation_readonly_subject_and_camera ... ok +test app::process_multiselect::tests::process_qualified_nonprimary_menu_opens_definition_from_caller_and_back_returns ... ok +test app::process_multiselect::tests::process_qualified_primary_is_exact_readonly_and_clears_without_semantic_rebinding ... ok +test app::process_multiselect::tests::process_queued_singleton_selection_remove_reorder_and_reconnect_cannot_retire_current_group ... ok +test app::process_multiselect::tests::process_stale_document_revision_owner_epoch_and_selection_aba_reject_before_shared_hooks ... ok +test app::process_multiselect::tests::process_usage_navigation_between_two_preview_paths_keeps_exact_link_identity ... ok +test app::reference_authoring::tests::chooser_rejects_old_results_after_context_recovery_reload_or_modal_and_keeps_history_text_out ... ok +test app::reference_authoring::tests::inspector_reference_browse_is_read_only_then_one_scoped_value_applies_with_exact_undo_redo ... ok +test app::reference_authoring::tests::inspector_reference_retains_invalid_missing_and_incompatible_current_until_explicit_clear ... ok +test app::reference_authoring::tests::mounted::mounted_delayed_return_cannot_focus_under_review_and_fresh_modal_tab_owns_its_form ... ok +test app::reference_authoring::tests::mounted::mounted_form_tab_enters_in_both_directions_and_cycles_boundaries_without_losing_focus ... ok +test app::reference_authoring::tests::mounted::mounted_fresh_tab_reveals_offscreen_reference_and_return_reveals_it_again ... ok +test app::reference_authoring::tests::mounted::mounted_reference_choice_stages_literal_identity_and_delayed_focus_cannot_hit_replacement_field ... ok +test app::reference_authoring::tests::mounted::mounted_reference_trigger_tabs_to_root_popup_search_escape_and_exact_adjacent_fields ... ok +test app::reference_authoring::tests::mounted::mounted_reverse_review_required_rationale_remains_editable_beside_candidate_reference_form ... ok +test app::reference_authoring::tests::mounted::mounted_review_pointer_open_and_outside_dismissal_keep_background_input_inactive ... ok +test app::reference_authoring::tests::mounted::mounted_scrolled_reference_anchor_uses_window_geometry_for_pointer_and_keyboard ... ok +test app::reference_authoring::tests::reference_array_row_reorder_and_constructor_switch_invalidate_exact_old_field ... ok +test app::reference_authoring::tests::review_reference_cannot_reopen_or_write_a_banked_row_after_another_row_takes_focus ... ok +test app::reference_authoring::tests::review_reference_facets_groups_and_attachment_hosts_browse_without_replanning_and_reject_old_facet ... ok +test app::repair_save_state_tests::recovering_applied_repair_rebinds_rolled_back_disk_bytes_without_changing_model ... ok +test app::repair_save_state_tests::recovery_missing_entry_or_failed_reload_preserves_current_destination_save_authority ... ok +test app::repair_save_state_tests::repair_history_compares_to_new_disk_baseline_and_then_successful_save ... ok +test app::repair_save_state_tests::repair_to_previous_saved_bytes_requires_save_at_new_destination_and_guards_close ... ok +test app::repair_save_state_tests::valid_equal_content_at_distinct_destinations_stays_clean ... ok +test app::review_navigation_tests::rejected_semantic_source_writeback_retains_review_camera_and_original_navigation ... ok +test app::review_navigation_tests::review_already_showing_the_target_keeps_its_camera_and_query ... ok +test app::review_navigation_tests::semantic_name_take_selects_the_counterpart_view_in_both_directions_with_one_exact_history_entry ... ok +test app::review_navigation_tests::semantic_review_without_a_destination_view_clears_the_old_layer_canvas_without_creating_a_view ... ok +test app::save_as_tests::save_as_late_receipt_preserves_newer_raw_source_draft_and_destination ... ok +test app::save_as_tests::save_as_preflight_rejects_historical_collision_before_starting_io ... ok +test app::save_as_tests::save_as_receipt_then_one_undo_restores_meaning_and_saving_preserves_redo ... ok +test app::saved_scenario_dispatch_tests::forged_saved_usage_is_refused_without_selection_or_camera_changes ... ok +test app::saved_scenario_dispatch_tests::missing_export_target_does_not_apply_pending_properties_or_open_dialog ... ok +test app::saved_scenario_dispatch_tests::rejected_export_schedules_no_write_and_preserves_draft_history_and_busy_state ... ok +test app::saved_scenario_dispatch_tests::saved_picker_with_invalid_properties_and_reveal_with_pending_properties_do_not_apply ... ok +test app::saved_scenario_dispatch_tests::saved_scenario_cannot_use_architecture_controls_or_change_projection_by_toolbar ... ok +test app::saved_scenario_dispatch_tests::saved_scenario_does_not_start_the_existing_architecture_palette ... ok +test app::saved_scenario_dispatch_tests::semantic_scenario_preview_remains_available_and_saved_views_are_not_default_architecture ... ok +test app::scenario_details_tests::actual_arrangement_picker_follows_selected_saved_record_and_opens_b_properties ... ok +test app::scenario_details_tests::arrangement_applies_only_the_old_view_draft_then_follows_b_with_one_undo ... ok +test app::scenario_details_tests::arrangement_change_preserves_independent_semantic_and_foreign_view_selection ... ok +test app::scenario_details_tests::arrangement_follows_view_record_to_automatic_owner_but_not_owner_back_to_saved ... ok +test app::scenario_details_tests::invalid_draft_and_stale_arrangement_preserve_selection_inputs_and_accepted_state ... ok +test app::scenario_details_tests::same_arrangement_uuid_edit_follows_the_reidentified_record_and_round_trips_source ... ok +test app::scenario_diagram::adoption_tests::missing_and_deleted_picker_ids_cannot_apply_an_unrelated_valid_property_draft ... ok +test app::scenario_diagram::adoption_tests::source_cross_layer_owner_retarget_undo_redo_keeps_requested_saved_uuid ... ok +test app::scenario_diagram::adoption_tests::source_deleted_owner_and_saved_view_mount_unavailable_instead_of_another_behavior ... ok +test app::scenario_diagram::adoption_tests::source_same_layer_owner_retarget_undo_redo_keeps_requested_saved_uuid ... ok +test app::scenario_diagram::owner_navigation_tests::saved_scenario_direct_behavior_selection_enters_explicit_process_or_state_owner ... ok +test app::scenario_diagram::owner_navigation_tests::saved_scenario_guide_selection_returns_to_explicit_process_or_state_owner ... ok +test app::scenario_diagram::tests::arrangement_picker_rejects_previous_visit_and_switches_automatic_without_model_changes ... ok +test app::scenario_diagram::tests::leaving_and_reentering_saved_view_preserves_source_and_retires_passive_visit ... ok +test app::scenario_diagram::tests::saved_picker_applies_valid_old_draft_and_uuid_edit_follows_that_same_view ... ok +test app::scenario_diagram::tests::saved_reference_back_restores_exact_view_with_a_fresh_visit ... ok +test app::scenario_diagram::tests::saved_view_return_rejects_old_passive_events_without_an_intermediate_frame ... ok +test app::scenario_diagram::tests::saved_view_switches_are_distinct_passive_visits_and_preserve_actual_history ... ok +test app::scenario_spacing::tests::click_selects_but_crossed_return_and_cancel_preserve_selection_camera_and_history ... ok +test app::scenario_spacing::tests::modal_open_cancels_preview_and_captured_begin_stays_retired_after_close ... ok +test app::scenario_spacing::tests::pending_semantic_draft_and_source_edit_cancel_and_reject_held_finish ... ok +test app::scenario_spacing::tests::same_batch_preview_is_immutable_and_one_commit_undo_redo_has_exact_source_parity ... ok +test app::scenario_spacing::tests::source_write_failure_cannot_commit_candidate_or_materialize_camera ... ok +test app::scenario_spacing::tests::stale_active_actions_cannot_remove_new_same_visit_deferred_reveal ... ok +test app::scenario_spacing::tests::stale_finish_after_new_view_and_forged_token_are_inert_before_reveal_reconciliation ... ok +test app::scenario_spacing::tests::stale_finish_cannot_remove_new_same_view_deferred_reveal ... ok +test app::scenario_spacing::tests::stale_text_and_scenario_messages_do_not_retire_a_new_saved_spacing_gesture ... ok +test app::source_indentation_tests::indentation_updates_draft_snapshot_version_and_single_undo_redo_without_model_change ... ok +test app::source_indentation_tests::no_op_outdent_does_not_add_history_or_increment_source_version ... ok +test app::source_indentation_tests::stale_hidden_and_modal_indentation_is_rejected_before_navigation_invalidation ... ok +test app::source_project_tests::closed_detached_file_keeps_first_save_conflict_then_can_be_reloaded_fresh ... ok +test app::source_project_tests::inactive_invalid_draft_blocks_graphical_changes_and_diagnostic_switches_files ... ok +test app::source_project_tests::includes_loaded_diagnostics_use_raw_newly_discovered_bytes ... ok +test app::source_project_tests::includes_loaded_diagnostics_use_retained_overlay_and_ignore_old_version ... ok +test app::source_project_tests::includes_loaded_rejects_mismatched_retained_bytes_before_publication ... ok +test app::source_project_tests::includes_loaded_requires_each_inactive_detached_overlay ... ok +test app::source_project_tests::json_export_and_rejected_save_as_preserve_source_location_history_and_bytes ... ok +test app::source_project_tests::missing_include_open_keeps_old_model_and_can_be_repaired_and_saved ... ok +test app::source_project_tests::recovery_after_first_save_failure_retains_target_then_retries_without_reentering_path ... ok +test app::source_project_tests::recovery_of_previous_save_as_target_does_not_redirect_current_project ... ok +test app::source_project_tests::recovery_open_finds_first_save_journal_without_an_entry_file ... ok +test app::source_project_tests::recovery_target_survives_edit_lint_apply_and_rejected_recovery_until_success ... ok +test app::source_project_tests::source3_native_open_preserves_report_comments_nesting_and_save_reopen ... ok +test app::source_project_tests::two_file_apply_graphical_edit_exact_undo_save_as_and_reopen ... ok +test app::source_rename::alias_input::tests::effective_escape_reset_follows_child_after_early_returns ... ok +test app::source_rename::alias_input::tests::held_paste_cache_contains_only_previously_admitted_text ... ok +test app::source_rename::alias_input::tests::paste_refusal_matches_child_focus_enabled_and_stored_modifier_protocol ... ok +test app::source_rename::editor_patch::tests::all_preflight_refusals_leave_text_cursor_and_selection_unchanged ... ok +test app::source_rename::editor_patch::tests::already_laid_out_editor_notifies_highlighter_from_zero_after_later_line_patch ... ok +test app::source_rename::editor_patch::tests::exact_text_matrix_and_reverse_preserve_endings ... ok +test app::source_rename::editor_patch::tests::unchanged_content_preserves_selection_and_next_direct_edit_works ... ok +test app::source_rename::tests::actual_alias_clipboard_rejects_controls_without_normalizing_or_moving_selection ... ok +test app::source_rename::tests::actual_captured_escape_closes_only_its_priority_owner_and_retains_worker ... ok +test app::source_rename::tests::actual_dialog_enter_requests_preview_even_when_confirm_is_available ... ok +test app::source_rename::tests::actual_dialog_real_paragraph_geometry_keeps_input_preview_and_footer_reachable ... ok +test app::source_rename::tests::alias_editor_sync_fallback_restores_accepted_display_and_preserves_model_history ... ok +test app::source_rename::tests::close_and_reset_retain_worker_slot_until_exact_completion_without_reopening ... ok +test app::source_rename::tests::complete_alias_change_preserves_literals_and_last_comment_separated_origin_and_undo ... ok +test app::source_rename::tests::full_details_selection_survives_readonly_and_passive_messages_and_tracks_input ... ok +test app::source_rename::tests::genuine_save_receipts_preserve_same_destination_preview_but_invalidate_save_as ... ok +test app::source_rename::tests::invalid_open_retains_accepted_document_but_refuses_alias_rename ... ok +test app::source_rename::tests::last_same_line_use_beyond_reference_row_limit_and_selection_boundaries ... ok +test app::source_rename::tests::mounted_editor_f2_requires_focus_and_no_modifiers ... ok +test app::source_rename::tests::navigation_union_tests::document_reset_retains_all_three_worker_slots_until_their_exact_results_arrive ... ok +test app::source_rename::tests::navigation_union_tests::late_target_and_preview_results_release_only_their_slot_and_preserve_first_camera_measurement ... ok +test app::source_rename::tests::navigation_union_tests::loading_and_ready_diagram_choosers_reject_a_previously_captured_rename_begin ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::allocation_keyboard_notification_preserves_navigation_and_first_measurement ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::captured_behavior_toolbar_cannot_retire_a_new_documents_navigation ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::captured_old_chooser_context_and_every_token_variant_are_inert ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::captured_old_source_query_and_find_close_preserve_the_new_destination ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::compact_diagram_usages_command_uses_captured_query_and_existing_chooser ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::current_chooser_open_and_close_keep_their_boundary_and_worker_semantics ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::current_compact_drawer_controls_and_mounted_resize_remain_live ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::current_source_query_and_checked_find_close_remain_live ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::stale_compact_drawer_controls_preserve_current_navigation_and_evidence ... ok +test app::source_rename::tests::navigation_union_tests::palette_union::stale_rename_begin_cannot_retire_allocation_epoch_or_new_navigation ... ok +test app::source_rename::tests::navigation_union_tests::rename_modal_rejects_queued_diagram_and_source_navigation_without_losing_approval ... ok +test app::source_rename::tests::navigation_union_tests::rename_then_exact_caret_diagram_navigation_preserves_complete_model_undo_redo_history ... ok +test app::source_rename::tests::navigation_union_tests::stale_begin_close_and_actual_confirm_leave_new_diagram_focus_and_pending_measurement_unchanged ... ok +test app::source_rename::tests::paging_all_utf8_fragments_preserves_exact_preview_and_approval ... ok +test app::source_rename::tests::preview_glyph_tests::actual_preview_source_glyphs_clear_scrollbar_and_all_long_fragments_are_reachable ... ok +test app::source_rename::tests::preview_scroll_tests::delayed_page_and_approval_operations_cannot_reset_a_new_destination ... ok +test app::source_rename::tests::preview_scroll_tests::details_remount_restores_wheel_offset_before_any_rescroll ... ok +test app::source_rename::tests::preview_scroll_tests::details_round_trip_retires_held_reset_without_changing_page_or_repeated_visibility_scroll ... ok +test app::source_rename::tests::preview_scroll_tests::diagnostic_publication_during_rename_keeps_actual_preview_report_passive ... ok +test app::source_rename::tests::preview_scroll_tests::explicit_navigation_resets_retained_scroll_but_id_change_alone_does_not ... ok +test app::source_rename::tests::preview_scroll_tests::repeated_page_visits_filters_and_fast_preview_completion_have_distinct_destinations ... ok +test app::source_rename::tests::property_draft_and_detached_buffer_refuse_without_hidden_apply ... ok +test app::source_rename::tests::replacement_generation_aba_and_modal_shortcuts_cannot_commit_stale_preview ... ok +test app::source_rename::tests::same_alias_invalid_and_cancel_keep_existing_redo_and_source_selection ... ok +test app::source_rename::tests::source_edit_undo_and_recovery_invalidation_do_not_revive_approval ... ok +test app::source_rename::tests::stale_dialog_envelopes_do_not_cancel_new_same_path_form_or_its_approval ... ok +test app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing ... ignored, manual Windows dev/debug rename latency trial; run alone with --ignored --nocapture --test-threads=1 +test app::source_rename::timing_tests::layout_timing_tests::accepted_release1_constructor_vs_reuse_through_next_highlight ... ignored, manual Windows dev/debug editor replacement + layout/highlight trial; run alone with --ignored --nocapture --test-threads=1 +test app::source_symbols::focus_selection_tests::explicit_cursor_navigation_still_moves_and_selects_requested_line ... ok +test app::source_symbols::focus_selection_tests::mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss ... ok +test app::source_symbols::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes ... ok +test app::source_symbols::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes ... ok +test app::source_symbols::tests::back_after_origin_edit_uses_its_current_cursor_instead_of_the_old_range ... ok +test app::source_symbols::tests::back_keeps_the_latest_64_actual_locations_without_reusing_dropped_history ... ok +test app::source_symbols::tests::back_restores_exact_reversed_utf8_selection_and_crlf_source ... ok +test app::source_symbols::tests::captured_delivery_does_not_duplicate_existing_behavior_or_architecture_routes ... ok +test app::source_symbols::tests::captured_find_and_modal_escape_use_one_actual_delivery_and_preserve_pending_work ... ok +test app::source_symbols::tests::close_during_busy_retains_hidden_completion_without_reopening_or_navigation ... ok +test app::source_symbols::tests::closed_results_stay_closed_on_exact_back_and_reopen_only_for_a_return_notice ... ok +test app::source_symbols::tests::combined_modal_completion_releases_worker_without_navigation_or_model_changes ... ok +test app::source_symbols::tests::combined_reference_chooser_blocks_navigation_and_completion_precedes_reconciliation ... ok +test app::source_symbols::tests::completion_retains_current_display_but_rejects_navigation_after_context_changes ... ok +test app::source_symbols::tests::delayed_definition_after_hide_or_tab_change_retains_data_without_reopening_or_focus ... ok +test app::source_symbols::tests::departure_selection::changed_active_origin_back_keeps_current_effective_selection ... ok +test app::source_symbols::tests::departure_selection::effective_selection_is_untouched_by_noop_missing_invalid_or_cancelled_navigation ... ok +test app::source_symbols::tests::departure_selection::effective_selection_survives_file_roundtrip_and_definition_back ... ok +test app::source_symbols::tests::departure_selection::scoped_escape_retains_references_then_closes_them_without_losing_effective_selection ... ok +test app::source_symbols::tests::departure_selection::source_creation_preserves_outgoing_selection_and_undisplayed_entry_cursor ... ok +test app::source_symbols::tests::detached_duplicate_requires_an_explicit_choice_even_when_included_source_is_validated ... ok +test app::source_symbols::tests::escape_dismisses_modal_before_underlying_source_results ... ok +test app::source_symbols::tests::escape_hides_results_and_cancels_navigation_but_retains_latest_display ... ok +test app::source_symbols::tests::find_close_releases_removed_input_and_guarded_focus_respects_later_input ... ok +test app::source_symbols::tests::find_only_captured_escape_closes_once_and_preserves_raw_query_and_selection ... ok +test app::source_symbols::tests::hidden_completion_checks_exact_bytes_even_when_snapshot_key_was_not_advanced ... ok +test app::source_symbols::tests::invalid_unapplied_drafts_navigate_without_apply_or_losing_either_history ... ok +test app::source_symbols::tests::matching_old_worker_cannot_replace_a_newer_display_owner ... ok +test app::source_symbols::tests::matching_reveal_ticket_is_required_and_raw_input_invalidates_pending_reveal ... ok +test app::source_symbols::tests::old_find_close_cannot_cancel_a_new_file_session_or_reopened_find_intent ... ok +test app::source_symbols::tests::old_symbol_widget_envelopes_after_file_switch_preserve_same_session_intent ... ok +test app::source_symbols::tests::old_symbol_widget_envelopes_after_reset_preserve_new_same_path_intent ... ok +test app::source_symbols::tests::popup_escape_has_no_duplicate_bridge_and_dismissal_preserves_underlying_find_and_drawer ... ok +test app::source_symbols::tests::reset_retains_worker_slot_until_old_completion_then_admits_new_session_query ... ok +test app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references ... ok +test app::source_symbols::tests::same_key_changed_bytes_mark_retained_rows_stale_before_choice_boundaries ... ok +test app::source_symbols::tests::same_worker_with_changed_request_envelope_cannot_publish_or_navigate ... ok +test app::source_symbols::tests::saturated_raw_clock_never_authorizes_completion_or_reveal ... ok +test app::source_symbols::tests::source_symbols_100_modules_1000_definitions_10000_uses ... ignored, manual 100-module latency/process-memory trial; run alone with --ignored --nocapture --test-threads=1 +test app::source_symbols::tests::unknown_job_cannot_release_current_worker_and_old_duplicate_cannot_replace_new_results ... ok +test app::source_symbols::tests::valid_definition_and_reference_choice_keep_whole_model_and_source_unchanged ... ok +test app::state_diagram_tests::all_context_dimensions_reject_stale_selection_camera_and_model_messages ... ok +test app::state_diagram_tests::attachment_escape::mounted_attachment_escape_preserves_modal_priority_and_focused_canvas_control ... ok +test app::state_diagram_tests::attachment_escape::mounted_menu_armed_attachment_escape_without_canvas_click_preserves_document_and_focus ... ok +test app::state_diagram_tests::bends::state_bend_commands_preserve_other_fields_views_and_exact_history ... ok +test app::state_diagram_tests::bends::state_bend_delayed_commit_after_same_view_selection_is_inert_and_live_commit_works ... ok +test app::state_diagram_tests::bends::state_bend_insertion_uses_captured_traversal_segment_and_removal_only_changes_pins ... ok +test app::state_diagram_tests::bends::state_bend_menu_carries_exact_segment_and_pin_without_changing_delete_action ... ok +test app::state_diagram_tests::bends::state_bend_self_loop_add_move_remove_clear_preserves_project_and_source_history ... ok +test app::state_diagram_tests::bends::state_bend_stale_nonfinite_capacity_hidden_and_folded_requests_are_inert ... ok +test app::state_diagram_tests::create_view_places_only_its_machine_and_restores_exact_source_in_one_undo ... ok +test app::state_diagram_tests::direct_create_connect_select_and_move_keep_semantic_identity_and_atomic_history ... ok +test app::state_diagram_tests::fallback_owner_first_selection_keeps_the_captured_context_for_its_first_move ... ok +test app::state_diagram_tests::pending_drafts_block_every_direct_mutation_and_passive_camera_preserves_inputs ... ok +test app::state_diagram_tests::picker_escape::mounted_state_missing_picker_escape_preserves_exact_document_then_reopens_and_places ... ok +test app::state_diagram_tests::real_view_tool_and_history_changes_invalidate_old_release_events ... ok +test app::state_diagram_tests::rejected_creation_keeps_source_and_selection_then_valid_owner_can_retry ... ok +test app::state_diagram_tests::same_size_viewport_after_revision_or_tool_epoch_does_not_refit_the_camera ... ok +test app::state_diagram_tests::shared_semantic_states_keep_architecture_and_behavior_placements_independent ... ok +test app::state_diagram_tests::state_diagram_routes_constructor_and_source_open_to_the_existing_workspace_without_edits ... ok +test app::state_diagram_tests::state_diagram_routes_picker_and_reveal_but_explicit_architecture_does_not_bounce ... ok +test app::state_diagram_tests::state_diagram_routes_preserve_selected_raw_properties_and_pending_behavior_guards ... ok +test app::state_diagram_tests::state_navigation_catalog_selection_across_layers_resets_camera_and_tool ... ok +test app::state_diagram_tests::state_navigation_catalog_selection_of_another_machine_resets_camera_and_tool ... ok +test app::state_diagram_tests::state_navigation_layer_change_resets_the_new_machine_at_the_same_viewport_size ... ok +test app::state_diagram_tests::state_navigation_return_to_the_same_view_preserves_camera_tool_and_fit_mode ... ok +test app::state_diagram_tests::state_navigation_root_event_and_same_layer_keep_the_current_camera_and_tool ... ok +test app::state_multiselect_focus_tests::mounted_state_busy_suspension_tracks_shift_without_granting_focus_or_commands ... ok +test app::state_multiselect_focus_tests::mounted_state_selection_and_missing_picker_never_resize_or_refit_the_canvas ... ok +test app::state_multiselect_focus_tests::mounted_state_shift_held_in_clean_inspector_toggles_on_first_canvas_press ... ok +test app::state_multiselect_tests::state_actions_trigger_captures_exact_row_without_owner_placement_and_stale_menu_cannot_retarget ... ok +test app::state_multiselect_tests::state_boundary_entry_exit_group_moves_use_authored_positions_and_boundary_owner_pin_rules ... ok +test app::state_multiselect_tests::state_fractional_group_move_preserves_full_model_routes_primary_and_one_step_history ... ok +test app::state_multiselect_tests::state_nonselect_tool_denies_current_group_selection_and_commands ... ok +test app::state_multiselect_tests::state_pending_property_source_and_state_form_inputs_are_preserved_without_implicit_apply ... ok +test app::state_multiselect_tests::state_primary_placement_removal_or_same_semantic_replacement_preserves_other_member ... ok +test app::state_multiselect_tests::state_primary_row_reassignment_or_replacement_preserves_exact_survivor_without_retarget ... ok +test app::state_multiselect_tests::state_queued_singleton_move_and_removal_cannot_edit_only_a_member_of_a_group ... ok +test app::state_multiselect_tests::state_rows_are_exact_relation_primaries_and_mixed_move_or_hide_refuses_whole_set ... ok +test app::state_multiselect_tests::state_selected_ancestor_and_child_move_once_then_hide_only_selected_placements ... ok +test app::state_multiselect_tests::state_stale_group_events_reject_before_status_selection_camera_allocation_or_history_changes ... ok +test app::text_workspace::lifecycle_tests::canceled_or_failed_open_that_installs_nothing_retains_current_presentation_and_diagnostics ... ok +test app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker ... ok +test app::text_workspace::lifecycle_tests::recovery_does_not_republish_stale_warnings_after_workspace_key_departure ... ok +test app::text_workspace::lifecycle_tests::recovery_retains_current_warning_authority_with_drafts_and_reload_failure ... ok +test app::text_workspace::lifecycle_tests::saved_new_destination_does_not_revalidate_already_stale_warning_locations ... ok +test app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related ... ok +test app::text_workspace::tests::actual_chooser_blocks_diagnostic_actions_and_mounted_hover_until_closed ... ok +test app::text_workspace::tests::annotation_snapshot_requires_exact_current_bytes_and_publication ... ok +test app::text_workspace::tests::annotation_snapshot_tracks_real_file_round_trips_without_changing_model ... ok +test app::text_workspace::tests::current_diagnostic_target_navigates_but_changed_source_or_clear_refuses_it ... ok +test app::text_workspace::tests::diagnostic_span_must_be_loaded_ordered_and_utf8_exact ... ok +test app::text_workspace::tests::disabled_entry_cannot_become_a_new_action_under_the_same_menu_token ... ok +test app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority ... ok +test app::text_workspace::tests::drawer_document_session_and_visit_guards_are_independently_required ... ok +test app::text_workspace::tests::enabled_entry_is_readmitted_at_dispatch_and_blocked_by_busy ... ok +test app::text_workspace::tests::equal_diagnostic_republication_invalidates_primary_and_related_targets ... ok +test app::text_workspace::tests::menu_own_open_invalidation_does_not_stale_find_and_invoke_is_once ... ok +test app::text_workspace::tests::menu_source_caret_document_path_and_interaction_changes_refuse_stale_find ... ok +test app::text_workspace::tests::old_dismiss_and_invoke_do_not_consume_a_newer_menu ... ok +test app::text_workspace::tests::only_valid_explicit_group_and_resize_intent_cancel_pending_navigation ... ok +test app::text_workspace::tests::queued_group_toggle_cannot_mutate_a_reopened_or_rotated_visit ... ok +test app::text_workspace::tests::queued_toolbar_request_cannot_retarget_after_source_change ... ok +test app::text_workspace::tests::reference_groups_and_scroll_survive_tabs_and_reject_old_visits_and_queries ... ok +test app::text_workspace::tests::reset_removes_ui_and_publication_authority_and_resize_rejects_nan ... ok +test app::text_workspace::tests::retained_primary_and_related_targets_cannot_replay_after_hide_or_problems_references_problems ... ok +test app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application ... ok +test app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts ... ok +test app::traceability_navigation_tests::mixed_view_show_keeps_its_context_for_every_diagram_app_and_target_layer ... ok +test app::traceability_navigation_tests::mixed_view_show_menu_places_in_captured_view_with_exact_undo_redo ... ok +test app::traceability_navigation_tests::mixed_view_show_menu_rejects_stale_context_and_pending_property_changes ... ok +test app::traceability_navigation_tests::review_layer_traces_resets_inventory_without_applying_property_or_source_drafts ... ok +test app::traceability_navigation_tests::review_layer_traces_respects_busy_modal_and_active_placement_guards ... ok +test app::transition_context_tests::explicit_behavior_internal_and_process_roots_keep_their_workspace_without_creating_a_view ... ok +test app::transition_context_tests::explicit_destination_is_honored_and_ordinary_work_transition_still_places_in_architecture ... ok +test app::transition_context_tests::machine_and_typed_action_transitions_resolve_the_owner_and_reusing_that_context_retains_camera ... ok +test app::transition_context_tests::rejected_source_writeback_keeps_review_and_navigation_and_invalid_draft_still_blocks_start ... ok +test app::transition_context_tests::scenario_transition_focuses_requested_counterpart_and_preserves_unrelated_views_in_both_directions ... ok +test app::view_copy_tests::copying_architecture_keeps_architecture_even_with_a_retained_state_view ... ok +test app::view_copy_tests::copying_the_current_state_view_uses_its_own_identity_and_is_one_source_undo ... ok +test app::view_copy_tests::duplicate_rejection_preserves_an_incomplete_source_buffer ... ok +test app::view_copy_tests::duplicate_rejection_preserves_invalid_property_and_pending_behavior_drafts ... ok +test app::view_copy_tests::stale_copy_does_not_apply_an_unrelated_valid_property_draft ... ok +test behavior::canvas_workspace::camera_policy_tests::tiny_zoom_label_is_nonzero_and_changes_with_zoom ... ok +test behavior::canvas_workspace::camera_policy_tests::topology_retains_five_percent_floor ... ok +test behavior::canvas_workspace::tests::relative_camera_zoom_keeps_the_cursor_world_point_and_rejects_nonfinite_inputs ... ok +test behavior::canvas_workspace::tests::viewport_ordered_batch_uses_each_event_position_and_cancels_before_camera_motion ... ok +test behavior::contextual_source_tests::contextual_source_app_checkpoint_restores_inner_raw_draft_without_model_adoption ... ok +test behavior::contextual_source_tests::contextual_source_app_empty_actions_and_child_open_refuse_other_raw_editors ... ok +test behavior::contextual_source_tests::contextual_source_app_modal_escape_then_child_back_then_parent_cancel_preserve_accepted_source ... ok +test behavior::contextual_source_tests::contextual_source_back_remains_available_after_owner_deletion_and_with_dirty_editors ... ok +test behavior::contextual_source_tests::contextual_source_back_retains_parent_and_rejects_late_child_event ... ok +test behavior::contextual_source_tests::contextual_source_default_consumer_name_has_stable_alias_and_correlated_selection ... ok +test behavior::contextual_source_tests::contextual_source_deleted_owner_view_retains_draft_instead_of_panicking_or_using_fallback ... ok +test behavior::contextual_source_tests::contextual_source_empty_history_reports_no_change_and_success_requires_a_real_history_step ... ok +test behavior::contextual_source_tests::contextual_source_empty_palette_lifeline_cannot_open_a_previous_owner_or_layer ... ok +test behavior::contextual_source_tests::contextual_source_existing_choice_prunes_staged_dependency ... ok +test behavior::contextual_source_tests::contextual_source_failed_source_budget_preserves_both_drafts_and_accepted_bytes ... ok +test behavior::contextual_source_tests::contextual_source_incomplete_recovered_kind_reports_error_without_panicking ... ok +test behavior::contextual_source_tests::contextual_source_inserts_work_on_the_exact_guarded_link_and_refuses_exchange_identity_conflict ... ok +test behavior::contextual_source_tests::contextual_source_lifelines_stage_exact_separate_records_and_one_history_entry ... ok +test behavior::contextual_source_tests::contextual_source_machine_before_any_owner_creates_optional_view_atomically ... ok +test behavior::contextual_source_tests::contextual_source_mounted_small_editor_keeps_back_and_use_outside_field_scroll ... ok +test behavior::contextual_source_tests::contextual_source_nested_semantic_parent_is_explicit_and_revalidated ... ok +test behavior::contextual_source_tests::contextual_source_new_callee_lifeline_preserves_caller_bindings_as_an_explicit_warning ... ok +test behavior::contextual_source_tests::contextual_source_original_document_remains_bound_after_back_or_choosing_existing ... ok +test behavior::contextual_source_tests::contextual_source_owner_first_can_return_to_an_unnamed_machine_without_losing_source ... ok +test behavior::contextual_source_tests::contextual_source_recovery_keeps_inner_raw_fields_and_refuses_deleted_or_changed_owner ... ok +test behavior::contextual_source_tests::contextual_source_second_system_and_role_machine_owner_refuse_without_fallback ... ok +test behavior::contextual_source_tests::contextual_source_work_uses_reserved_contribution_and_link_ids_and_one_undo ... ok +test behavior::creation::app_tests::app_choosing_another_behavior_or_layer_cannot_commit_a_creation_draft ... ok +test behavior::creation::app_tests::app_creation_opens_the_actual_new_owner_instead_of_first_or_previously_active_behavior ... ok +test behavior::creation::app_tests::app_first_captured_escape_dismisses_file_or_pending_overlay_before_creation ... ok +test behavior::creation::app_tests::app_lesson_request_cancel_retains_creation_then_escape_discards_only_the_draft ... ok +test behavior::creation::app_tests::app_machine_behavior_submit_opens_its_opted_in_view_as_one_undoable_transaction ... ok +test behavior::creation::app_tests::app_new_never_auto_applies_valid_or_invalid_property_and_source_drafts ... ok +test behavior::creation::app_tests::app_recovered_rootless_sa_creation_retains_layer_ids_and_other_raw_drafts ... ok +test behavior::creation::app_tests::app_stale_layer_open_never_starts_or_replaces_a_draft ... ok +test behavior::creation::tests::all_four_viewpoints_are_explicit_and_survive_source_history_reopen ... ok +test behavior::creation::tests::cancel_and_illegal_family_layer_switches_never_create_model_objects ... ok +test behavior::creation::tests::corrupted_recovery_and_reserved_identity_collision_refuse_without_repairing_raw_values ... ok +test behavior::creation::tests::creation_selection_rejects_changed_scenario_body_and_post_creation_operations ... ok +test behavior::creation::tests::machine_requires_valid_owner_and_first_view_adds_no_region_or_state ... ok +test behavior::creation::tests::mounted_creation_keeps_actions_visible_and_renders_only_six_owner_candidates ... ok +test behavior::creation::tests::oa_process_and_sa_chain_keep_exact_names_root_ownership_and_one_history_entry ... ok +test behavior::creation::tests::optional_context_collapses_without_losing_authored_reference_or_raw_search ... ok +test behavior::creation::tests::owner_search_is_name_ordered_filtered_and_page_sized_not_a_catalog ... ok +test behavior::creation::tests::post_commit_selection_is_correlated_with_exact_created_behavior_and_view ... ok +test behavior::creation::tests::recovery_preserves_exact_raw_inputs_reserved_ids_and_revalidates_stale_owner ... ok +test behavior::creation::tests::rejected_source_transaction_keeps_draft_and_every_accepted_source_byte ... ok +test behavior::creation::tests::repeated_owner_names_remain_distinguishable_by_searchable_parent_context_and_alias ... ok +test behavior::direct_canvas_tests::direct_alt_execution_stops_each_operand_at_its_reply_and_marks_open_operand ... ok +test behavior::direct_canvas_tests::direct_bounds_change_during_held_drag_never_commits_old_slot ... ok +test behavior::direct_canvas_tests::direct_clicked_occurrence_capture_cancels_on_view_and_context_changes ... ok +test behavior::direct_canvas_tests::direct_context_escape_unfocus_and_pending_form_cancel_gestures ... ok +test behavior::direct_canvas_tests::direct_drag_and_click_click_use_ordered_sources_and_publish_once ... ok +test behavior::direct_canvas_tests::direct_execution_span_ends_at_its_correlated_reply_and_marks_an_open_call ... ok +test behavior::direct_canvas_tests::direct_panned_canvas_maps_ordered_pointer_events_to_the_visible_slot ... ok +test behavior::direct_canvas_tests::direct_scroll_resize_and_bounds_changes_cancel_captured_slots ... ok +test behavior::direct_canvas_tests::direct_selected_handle_reorders_and_hits_keep_semantic_identity ... ok +test behavior::direct_canvas_tests::reused_exchange_messages_display_their_distinct_occurrence_names ... ok +test behavior::scenario::camera::tests::fit_remains_active_across_first_and_changed_viewport ... ok +test behavior::scenario::camera::tests::invalid_inputs_are_passive_and_large_finite_bounds_do_not_overflow_center ... ok +test behavior::scenario::camera::tests::negative_origin_fit_contains_independently_known_extremes ... ok +test behavior::scenario::camera::tests::pan_leaves_fit_from_displayed_position_and_zero_motion_preserves_fit ... ok +test behavior::scenario::camera::tests::tiny_fit_zoom_in_out_preserves_pointer_world_anchor_without_floor_jump ... ok +test behavior::scenario::data_contract_tests::large_payload_has_one_editor_with_reachable_field_and_authored_pages ... ok +test behavior::scenario::data_contract_tests::recursive_browsing_up_and_root_keep_values_and_report_the_depth_limit ... ok +test behavior::scenario::data_contract_tests::recursive_value_focus_exposes_authored_leaf_and_phase_changes_retain_surviving_keys ... ok +test behavior::scenario::data_contract_tests::reply_call_picker_previews_the_same_value_reset_as_selecting_another_exchange ... ok +test behavior::scenario::data_contract_tests::scenario_form_commits_two_reused_record_values_and_correlated_reply_atomically ... ok +test behavior::scenario::direct_tests::direct_busy_save_keeps_details_current_and_camera_for_the_next_pointer_gesture ... ok +test behavior::scenario::direct_tests::direct_clicked_occurrence_rejects_stale_slots_and_retains_recoverable_drafts ... ok +test behavior::scenario::direct_tests::direct_clicked_occurrences_use_root_and_operand_slots_with_exact_source_history ... ok +test behavior::scenario::direct_tests::direct_exchange_compatibility_browsing_preserves_final_slot_validation ... ok +test behavior::scenario::direct_tests::direct_exchange_picker_is_bounded_and_browsing_keeps_pending_values ... ok +test behavior::scenario::direct_tests::direct_five_hundred_exchange_choice_render_probe ... ok +test behavior::scenario::direct_tests::direct_form_keeps_the_same_canvas_in_the_widget_tree ... ok +test behavior::scenario::direct_tests::direct_middle_pair_insertion_is_one_exact_source_and_model_undo ... ok +test behavior::scenario::direct_tests::direct_operand_pair_keeps_parent_sequence_and_cannot_reorder_across_operands ... ok +test behavior::scenario::direct_tests::direct_reply_choices_cache_keeps_typing_fast_and_revalidates_changed_contexts ... ok +test behavior::scenario::direct_tests::direct_reply_choices_validate_the_actual_slot_and_reorder_rejects_reverse_order ... ok +test behavior::scenario::direct_tests::direct_scenario_reference_navigation_blocks_pending_drafts_and_stale_contexts ... ok +test behavior::scenario::direct_tests::direct_scenario_reference_navigation_retains_each_exact_caller_without_history ... ok +test behavior::scenario::direct_tests::direct_scenario_reference_return_survives_rename_and_rejects_deleted_or_changed_use ... ok +test behavior::scenario::operation_tests::operation_gui_async_picker_uses_request_root_and_nested_directions_without_erasing_rejected_values ... ok +test behavior::scenario::operation_tests::operation_gui_selects_two_parameterless_allocations_without_inventing_refinement_and_reply_derives_call ... ok +test behavior::scenario::operation_tests::operation_gui_unresolved_and_disabled_selection_recovery_preserves_rejected_raw_values ... ok +test behavior::scenario::presentation_tests::complete_fallback_scene_selects_but_cannot_capture_or_finish_coordinate_gestures ... ok +test behavior::scenario::presentation_tests::deleted_saved_identity_remains_unavailable_and_never_falls_into_derived_geometry ... ok +test behavior::scenario::presentation_tests::saved_caller_restores_exact_representation_with_fresh_visit_and_rejects_deleted_view ... ok +test behavior::scenario::presentation_tests::saved_camera_fits_actual_negative_origin_and_tiny_scale_without_authored_mutation ... ok +test behavior::scenario::presentation_tests::saved_visits_distinguish_same_owner_roundtrips_and_suspended_return_without_editing ... ok +test behavior::scenario::spacing::controller::tests::click_threshold_is_active_axis_and_return_to_zero_is_not_a_click ... ok +test behavior::scenario::spacing::controller::tests::forged_camera_hit_role_and_retired_visit_cannot_capture ... ok +test behavior::scenario::spacing::controller::tests::fractional_screen_packet_preserves_subpixel_motion_in_preview_and_finish ... ok +test behavior::scenario::spacing::controller::tests::invalid_move_discards_prior_candidate_and_finish_rechecks_final_pointer ... ok +test behavior::scenario::spacing::controller::tests::real_preview_moves_only_active_axis_from_original_and_never_changes_document ... ok +test behavior::scenario::spacing::controller::tests::zoomed_out_message_tolerance_matches_actual_canvas_hit ... ok +test behavior::scenario::spacing::controller::timing_tests::saved_spacing_capture_prepare_20_lanes_1000_messages_3_views ... ignored, Diagnostic timing only; run alone with --exact --ignored --nocapture after correctness gates; no latency acceptance threshold +test behavior::scenario::spacing::tests::drawn_unassigned_lifeline_can_move_without_assigning_a_semantic_participant ... ok +test behavior::scenario::spacing::tests::feasible_spacing_crossing_remains_authored_with_diagnostic_and_unchanged_steps ... ok +test behavior::scenario::spacing::tests::horizontal_lane_move_changes_actual_header_and_attached_endpoints_only_in_selected_view ... ok +test behavior::scenario::spacing::tests::invalid_view_foreign_identity_and_latent_message_are_not_spacing_targets ... ok +test behavior::scenario::spacing::tests::malformed_or_out_of_range_motion_cannot_mutate_original ... ok +test behavior::scenario::spacing::tests::one_repeated_message_moves_in_one_view_with_exact_document_undo_redo_and_reopen ... ok +test behavior::scenario::spacing::tests::self_call_spacing_uses_send_y_and_preserves_reply_and_actual_activation_finish ... ok +test behavior::scenario::spacing::tests::unsupported_self_call_move_is_refused_and_automatic_fallback_is_not_editable_capture ... ok +test behavior::scenario::spacing::tests::zero_motion_return_to_start_and_subprecision_preserve_sparse_intent_and_real_redo ... ok +test behavior::scenario::tests::fragment_operands_accept_paired_messages_through_normal_destination_picker ... ok +test behavior::scenario::tests::graphical_call_reply_is_atomic_correlated_and_source_equivalent ... ok +test behavior::scenario::tests::invalid_lifecycle_edit_keeps_draft_and_timer_has_no_global_exchange ... ok +test behavior::scenario::tests::lifeline_picker_uses_core_viewpoint_contract ... ok +test behavior::scenario::tests::reverse_communication_canvas_choices_and_correlated_reply_share_core_direction ... ok +test behavior::scenario::tests::scenario_reuse_requires_explicit_compatible_bindings ... ok +test behavior::scenario::tests::tagged_scenario_commit_is_not_redirected_by_other_editor_events ... ok +test behavior::scenario::usage::tests::scenario_operation_label_membership_excludes_ellipsis_only_and_normalizes_whitespace ... ok +test behavior::scenario::usage::tests::scenario_usage_counts_nested_occurrences_and_lifelines_but_keeps_reuse_opaque ... ok +test behavior::scenario::usage::tests::scenario_usage_keeps_repeated_messages_and_reveal_is_read_only_and_revalidated ... ok +test behavior::scenario::usage::tests::scenario_usage_only_reports_the_resolved_operation_fields_actually_in_the_label ... ok +test behavior::scenario::workspace::details_tests::details_opens_current_saved_view_properties_after_following_diagram_picker ... ok +test behavior::scenario::workspace::details_tests::details_properties_refuses_another_saved_view_even_with_the_same_scenario_owner ... ok +test behavior::scenario::workspace::details_tests::details_properties_refuses_pending_property_source_and_behavior_drafts_without_apply ... ok +test behavior::scenario::workspace::details_tests::details_properties_rejects_retired_view_selection_and_epoch_without_changing_panels ... ok +test behavior::scenario::workspace::details_tests::opening_scenario_properties_cancels_held_spacing_and_rejects_its_late_finish ... ok +test behavior::scenario::workspace::details_tests::saved_details_opens_real_editable_inspector_and_returns_to_same_view ... ok +test behavior::scenario::workspace::spacing_tests::saved_body_and_header_clicks_select_without_materializing_spacing ... ok +test behavior::scenario::workspace::spacing_tests::saved_drag_return_to_origin_preserves_redo_selection_and_original_fit_camera ... ok +test behavior::scenario::workspace::spacing_tests::saved_escape_and_outside_pointer_cancel_actual_held_preview ... ok +test behavior::scenario::workspace::spacing_tests::saved_header_preview_survives_frames_and_freezes_fit_while_actual_bounds_expand ... ok +test behavior::scenario::workspace::spacing_tests::saved_message_same_batch_pointer_events_commit_once_and_one_undo_redo_restores_exact_source ... ok +test behavior::scenario::workspace::spacing_tests::saved_valid_preview_then_refused_self_call_never_commits_last_valid_candidate ... ok +test behavior::scenario::workspace::tests::new_scenario_form_resets_only_its_scroll_and_recovery_gets_a_fresh_session ... ok +test behavior::scenario::workspace::tests::production_empty_scenario_lifeline_tool_keeps_staged_source_inside_stable_canvas ... ok +test behavior::scenario::workspace::tests::production_scenario_camera_external_controls_bounds_and_retained_deltas_cancel_old_drags ... ok +test behavior::scenario::workspace::tests::production_scenario_canvas_keeps_bounds_draft_identity_and_camera_through_editing ... ok +test behavior::scenario::workspace::tests::production_scenario_canvas_pan_invalidates_a_pressed_creation_and_caller_restores_once ... ok +test behavior::scenario::workspace::tests::production_scenario_keyboard_enters_activates_draws_focus_and_returns_to_inspector ... ok +test behavior::scenario::workspace::tests::production_scenario_keyboard_reveals_and_activates_initially_offscreen_last_tool ... ok +test behavior::scenario::workspace::tests::production_scenario_passive_modifiers_do_not_acquire_keyboard_focus_or_mutate_model ... ok +test behavior::scenario::workspace::tests::production_scenario_retained_toolbar_intents_reject_chooser_dirty_and_picker_lifetimes ... ok +test behavior::scenario::workspace::tests::production_scenario_whole_glyph_drag_moves_one_occurrence_and_rejects_other_operand ... ok +test behavior::scenario::workspace::tests::scenario_form_focus_chained_apply_rechecks_live_review_owner ... ok +test behavior::scenario::workspace::tests::scenario_form_focus_missing_exact_target_leaves_other_inputs_untouched ... ok +test behavior::scenario::workspace::tests::scenario_form_focus_returns_from_back_use_and_escape_after_initial_focus_is_consumed ... ok +test behavior::scenario::workspace::tests::scenario_form_focus_saved_action_is_inert_on_replacement_child_review_and_changed_context ... ok +test behavior::scenario::workspace::tests::scenario_form_focus_targets_the_name_and_rejects_stale_sessions_or_modals ... ok +test behavior::scenario::workspace::tests::scenario_workspace_choosing_tools_preserves_valid_and_invalid_pending_editors ... ok +test behavior::scenario::workspace::tests::scenario_workspace_fit_uses_measured_inner_viewport_and_rejects_nonfinite_inputs ... ok +test behavior::scenario::workspace::tests::scenario_workspace_open_and_back_restore_owner_and_mounted_camera_after_preselection ... ok +test behavior::scenario::workspace::tests::scenario_workspace_same_size_owner_and_document_changes_remeasure_fit_viewport ... ok +test behavior::scenario::workspace::tests::scenario_workspace_scaled_and_panned_scene_keeps_clicked_slots_and_message_endpoints ... ok +test behavior::scenario::workspace::tests::scenario_workspace_scaled_nested_occurrences_and_reorder_keep_exact_sequence_identity ... ok +test behavior::scenario::workspace::tests::scenario_workspace_viewport_events_are_passive_guarded_and_do_not_apply_raw_forms ... ok +test behavior::scenario_activation::tests::a_fragment_cannot_make_crossed_calls_an_unambiguous_caller_execution ... ok +test behavior::scenario_activation::tests::activation_shoulders_under_label_backplates_select_their_call ... ok +test behavior::scenario_activation::tests::actual_canvas_pointer_selects_each_exposed_shoulder_under_zoom_and_pan ... ok +test behavior::scenario_activation::tests::alternative_and_parallel_operand_local_calls_do_not_nest_from_screen_order ... ok +test behavior::scenario_activation::tests::an_inactive_self_call_has_no_fabricated_parent_and_three_nested_calls_expose_three_columns ... ok +test behavior::scenario_activation::tests::call_uuid_order_does_not_choose_activation_columns_or_message_anchors ... ok +test behavior::scenario_activation::tests::inherited_execution_anchors_a_self_call_inside_an_operand_before_returning_after_the_fragment ... ok +test behavior::scenario_activation::tests::long_message_backplates_do_not_erase_selected_activation_border_pixels ... ok +test behavior::scenario_activation::tests::missing_reply_is_a_short_explicit_open_span_and_an_uncorrelated_reply_closes_nothing ... ok +test behavior::scenario_activation::tests::nested_calls_expose_both_bars_and_end_at_their_exact_replies_in_both_directions ... ok +test behavior::scenario_activation::tests::nested_correlations_returning_in_alternative_operands_remain_nested_before_the_fragment ... ok +test behavior::scenario_activation::tests::reentrant_call_uses_the_other_receiver_without_inventing_a_caller_execution ... ok +test behavior::scenario_activation::tests::self_call_receives_at_lower_loop_end_and_self_reply_returns_to_the_parent ... ok +test behavior::scenario_activation::tests::sequential_calls_reuse_column_and_crossed_replies_keep_their_correlations ... ok +test behavior::scenario_hit_tests::action_frame_and_use_boxes_do_not_advertise_message_or_header_roles ... ok +test behavior::scenario_hit_tests::activation_shoulder_beats_another_calls_label_and_broad_message_tolerance ... ok +test behavior::scenario_hit_tests::create_delete_markers_are_distinct_from_their_own_message_body_and_label ... ok +test behavior::scenario_hit_tests::exact_headers_include_unassigned_lifelines_but_guides_are_not_headers ... ok +test behavior::scenario_hit_tests::invalid_points_never_produce_a_semantic_or_spacing_hit ... ok +test behavior::scenario_hit_tests::repeated_exchange_occurrences_keep_distinct_message_body_and_label_hits ... ok +test behavior::scenario_hit_tests::self_call_elbow_and_receive_endpoint_are_messages_not_execution_hits ... ok +test behavior::scenario_hit_tests::tiny_scale_nearest_hit_retains_the_winning_marker_or_message_role ... ok +test behavior::scenario_hit_tests::winning_primitive_role_does_not_come_from_its_shared_uuid ... ok +test behavior::scenario_layout::presentation::tests::absent_and_empty_saved_layouts_remain_saved_ready_representations ... ok +test behavior::scenario_layout::presentation::tests::hard_failure_uses_complete_automatic_geometry_but_retains_each_saved_request_and_latent_notice ... ok +test behavior::scenario_layout::presentation::tests::missing_or_incompatible_identity_and_structural_coordinate_errors_are_unavailable ... ok +test behavior::scenario_layout::presentation::tests::passive_fallback_preserves_exact_document_source_and_one_step_undo_redo ... ok +test behavior::scenario_layout::presentation::tests::successful_crossing_diagnostic_keeps_authored_geometry_and_latent_identity ... ok +test behavior::scenario_layout::tests::absent_empty_and_explicit_baseline_saved_values_preserve_complete_scene_and_source ... ok +test behavior::scenario_layout::tests::authored_lanes_precede_headers_arrows_lifetimes_and_complete_bounds ... ok +test behavior::scenario_layout::tests::authored_send_bits_survive_baseline_delta_and_self_lifecycle_row_conversion ... ok +test behavior::scenario_layout::tests::complete_scope_plan_rejects_escape_preserves_overlap_and_keeps_headers_and_followers ... ok +test behavior::scenario_layout::tests::decimal_call_anchor_is_admitted_and_exact_in_plan_line_and_typed_activation ... ok +test behavior::scenario_layout::tests::earlier_receiver_death_and_prebirth_call_are_named_typed_failures_not_disappearing_bars ... ok +test behavior::scenario_layout::tests::exact_authored_lane_bits_survive_headers_and_tiny_distinct_lanes_are_not_coincident ... ok +test behavior::scenario_layout::tests::explicit_root_scope_failures_do_not_clamp_calls_or_lifecycle_but_async_can_be_negative ... ok +test behavior::scenario_layout::tests::independent_saved_appearances_of_reused_exchange_have_exact_anchors_and_no_ambient_state ... ok +test behavior::scenario_layout::tests::latent_message_becomes_exact_only_when_its_own_endpoint_is_completed ... ok +test behavior::scenario_layout::tests::moved_death_clips_actual_bar_and_preserves_unanswered_cue ... ok +test behavior::scenario_layout::tests::newly_skipped_sibling_scope_is_rejected_using_real_projector_diagnostics ... ok +test behavior::scenario_layout::tests::post_fragment_death_cannot_disappear_and_feasible_operand_spacing_retains_its_marker ... ok +test behavior::scenario_layout::tests::reply_crossing_is_a_specific_typed_failure ... ok +test behavior::scenario_layout::tests::same_x_distinct_lifelines_are_not_self_messages_in_either_bridge ... ok +test behavior::scenario_layout::tests::saved_direct_nested_message_uses_operand_scopes_without_reparenting_or_moving_followers ... ok +test behavior::scenario_layout::tests::self_call_receive_and_reply_send_drive_the_full_typed_execution ... ok +test behavior::scenario_layout::tests::self_lifecycle_saved_send_is_converted_once_to_the_actual_receive_marker ... ok +test behavior::scenario_layout::tests::timer_uses_implicit_effective_receiver_and_true_self_offset ... ok +test behavior::scenario_layout::tests::unfinished_coordinate_is_latent_and_zero_or_signed_zero_never_rewrites_source ... ok +test behavior::scenario_layout::tests::unsupported_expansion_duplicate_keys_and_foreign_identity_fail_without_mutating_input ... ok +test behavior::scenario_layout::tests::wide_gap_bounds_include_all_actual_shapes_and_typed_extensions ... ok +test behavior::scenario_lifecycle::render::tests::birth_label_clip_keeps_padded_world_bounds_at_each_scene_scale ... ok +test behavior::scenario_lifecycle::render::tests::birth_label_clip_preserves_parent_viewport_bounds ... ok +test behavior::scenario_lifecycle::render::tests::box_text_clip_intersects_parent_viewport_and_rejects_empty_interiors ... ok +test behavior::scenario_lifecycle::render::tests::panned_header_and_create_clips_use_screen_translation_and_actual_viewport ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_birth_death_markers_align_endpoints_and_win_selection_without_mutating_source ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_branch_delete_clips_only_its_activation_and_keeps_unanswered_call_visible ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_conditional_repeated_and_parallel_scopes_do_not_claim_definite_continuation ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_empty_and_create_only_use_visible_root_extents_not_insertion_bounds ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_lifecycle_edit_undo_redo_restores_exact_source_and_changed_geometry ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_long_header_title_and_detail_keep_names_and_have_bounded_clips ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_minimum_zoom_marker_halos_do_not_steal_adjacent_capsule_or_header_hits ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_minimum_zoom_near_ordinary_message_wins_over_lifecycle_halos ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_panned_zoomed_program_keeps_header_birth_and_death_hit_identity ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_self_delete_caption_clears_the_preceding_action_box ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_self_lifecycle_elbows_end_on_recorded_marker_rows ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_unassigned_lanes_and_explicit_incomplete_receiver_keep_real_marker_identity ... ok +test behavior::scenario_lifecycle::render::tests::real_scene_wide_latin_header_exceeds_old_character_budget ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::admitted_calls_without_sender_polylines_still_have_logical_correlation_metadata ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::admitted_death_and_incomplete_later_reply_do_not_fabricate_an_answered_execution ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::admitted_delayed_create_nested_calls_replies_delete_share_one_geometry_pipeline ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::admitted_self_lifecycle_and_self_call_keep_distinct_send_receive_rows ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::admitted_unresolved_operand_keeps_unanswered_cue_without_any_visible_segment ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::clipped_operand_preserves_original_nested_or_crossed_correlation_distinction ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::conditional_death_then_recreate_never_revives_call_but_keeps_open_sibling ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::invalid_prebirth_call_and_postdeath_reply_remain_rejected_with_defensive_scene_clipping ... ok +test behavior::scenario_lifecycle::render::tests::union_tests::test_only_upstream_row_offsets_update_lifetime_segments_and_endpoints_without_authoring ... ok +test behavior::scenario_lifecycle::tests::alternative_death_does_not_kill_its_displayed_sibling ... ok +test behavior::scenario_lifecycle::tests::conditional_birth_does_not_infer_absence_in_siblings_or_ancestors ... ok +test behavior::scenario_lifecycle::tests::explicit_receiver_is_authoritative_even_with_missing_exchange ... ok +test behavior::scenario_lifecycle::tests::lifecycle_free_fragments_do_not_poison_other_lanes ... ok +test behavior::scenario_lifecycle::tests::loop_lifetime_is_local_and_warning_bearing_loops_remain_drawable ... ok +test behavior::scenario_lifecycle::tests::missing_geometry_is_reported_without_nonfinite_or_guessed_markers ... ok +test behavior::scenario_lifecycle::tests::optional_cleanup_inside_loop_does_not_claim_balanced_or_definite_exit ... ok +test behavior::scenario_lifecycle::tests::projection_retains_exact_authored_source_and_does_not_enter_history ... ok +test behavior::scenario_lifecycle::tests::root_lifetime_has_exact_birth_death_boundaries_without_source_mutation ... ok +test behavior::scenario_lifecycle::tests::scenario_use_is_opaque_and_never_imports_callee_lifecycle_events ... ok +test behavior::scenario_scroll::tests::direct_scenario_caller_restores_mounted_scroll_once_with_clamping_and_app_receipt ... ok +test behavior::scenario_scroll::tests::direct_scenario_restore_cannot_scroll_another_document_owner_or_process_view ... ok +test behavior::scenario_scroll::tests::direct_scroll_mounted_identity_resets_navigation_but_preserves_edits_before_first_report ... ok +test behavior::scenario_scroll::tests::direct_scroll_observer_reports_actual_initial_clamped_and_remounted_offsets_once ... ok +test behavior::scenario_scroll::tests::independent_process_owner_change_resets_actual_scroll_offsets ... ok +test behavior::state_canvas::tests::attachment_drag_cancels_on_camera_context_tool_pending_and_focus_changes ... ok +test behavior::state_canvas::tests::attachment_return_to_press_restores_exact_automatic_or_fractional_original ... ok +test behavior::state_canvas::tests::context_menu_keeps_window_anchor_and_explicit_placement_identity ... ok +test behavior::state_canvas::tests::context_tool_and_pending_form_changes_cancel_mutating_gestures ... ok +test behavior::state_canvas::tests::creation_uses_the_explicit_deepest_owner_and_never_a_fallback_ancestor ... ok +test behavior::state_canvas::tests::diagram_usage_external_labels_obey_routing_cutoff_while_internal_rows_retain_full_summary ... ok +test behavior::state_canvas::tests::diagram_usage_state_rows_and_label_references_follow_actual_projection ... ok +test behavior::state_canvas::tests::diagram_usage_transition_labels_do_not_match_prose_or_fields_beyond_cutoff ... ok +test behavior::state_canvas::tests::drag_uses_ordered_release_at_each_zoom_and_moves_descendants_in_one_undo ... ok +test behavior::state_canvas::tests::escape_and_view_switch_discard_the_armed_transition_source ... ok +test behavior::state_canvas::tests::explicit_attachment_drag_is_view_only_and_one_source_history_operation ... ok +test behavior::state_canvas::tests::internal_rows_and_pseudostate_hits_use_shared_persisted_geometry ... ok +test behavior::state_canvas::tests::ordered_stationary_click_does_not_move_on_later_motion_in_the_same_batch ... ok +test behavior::state_canvas::tests::pan_is_button_scoped_read_only_and_hover_does_not_reproject_the_scene ... ok +test behavior::state_canvas::tests::pseudostate_names_avoid_rightward_and_downward_routes_and_share_hit_bounds ... ok +test behavior::state_canvas::tests::relayout_does_not_turn_a_transition_click_into_a_drag_or_pan ... ok +test behavior::state_canvas::tests::selected_endpoint_reconnect_preserves_identity_and_requires_handle_motion ... ok +test behavior::state_canvas::tests::selection_relayout_does_not_move_nodes_or_change_drag_distance ... ok +test behavior::state_canvas::tests::stacked_symbol_names_avoid_each_other_and_are_independent_of_input_order ... ok +test behavior::state_canvas::tests::state_bends_authored_pin_move_preserves_full_project_and_exact_undo_redo ... ok +test behavior::state_canvas::tests::state_bends_cancel_on_camera_context_focus_and_pointer_interruptions ... ok +test behavior::state_canvas::tests::state_bends_context_menu_distinguishes_authored_pin_from_computed_segment ... ok +test behavior::state_canvas::tests::state_bends_draw_before_update_excludes_preview_after_camera_or_bounds_change ... ok +test behavior::state_canvas::tests::state_bends_internal_rows_and_folded_proxies_cannot_acquire_pins ... ok +test behavior::state_canvas::tests::state_bends_right_click_discards_provisional_indexes_before_building_menu ... ok +test behavior::state_canvas::tests::state_bends_segment_drag_inserts_one_pin_using_ordered_pointer_at_three_zooms ... ok +test behavior::state_canvas::tests::state_bends_stationary_and_out_and_back_restore_off_grid_or_automatic_route ... ok +test behavior::state_canvas::tests::state_group_changed_authority_viewport_or_membership_retires_preview_and_release ... ok +test behavior::state_canvas::tests::state_group_delete_and_escape_respect_held_gesture_and_full_set ... ok +test behavior::state_canvas::tests::state_group_entry_anchor_uses_authored_position_with_unsnapped_delta ... ok +test behavior::state_canvas::tests::state_group_mixed_route_handle_refuses_drag_and_preserves_stationary_collapse ... ok +test behavior::state_canvas::tests::state_group_ordered_press_preview_and_fractional_release_preserve_primary ... ok +test behavior::state_canvas::tests::state_group_row_and_port_mixtures_refuse_complete_set_without_owner_promotion ... ok +test behavior::state_canvas::tests::state_group_shift_row_hit_menu_and_reassignment_keep_exact_identity ... ok +test behavior::state_canvas::tests::state_group_stationary_collapses_but_out_and_back_keeps_group ... ok +test behavior::state_canvas::tests::state_singleton_selection_bend_uses_five_unit_grid_and_escape_keeps_selection ... ok +test behavior::state_canvas::tests::state_singleton_selection_endpoint_reconnect_stationary_cancel_and_commit ... ok +test behavior::state_canvas::tests::state_singleton_selection_shift_handles_toggle_exact_edge_before_route_tools ... ok +test behavior::state_canvas::tests::transition_supports_click_click_and_drag_without_coalesced_accidental_edges ... ok +test behavior::state_canvas::tests::typed_state_actions_are_named_selectable_rows_before_internal_transitions_and_regions ... ok +test behavior::state_canvas::tests::viewport_uses_full_canvas_coordinates_and_republishes_for_a_new_context ... ok +test behavior::state_edit::tests::an_empty_machine_has_an_explicit_visible_owner_for_first_region_creation ... ok +test behavior::state_edit::tests::attachment_reset_preserves_other_end_pins_label_and_rejects_ineligible_owners ... ok +test behavior::state_edit::tests::connect_preserves_self_loops_and_rejects_hidden_or_incompatible_vertices ... ok +test behavior::state_edit::tests::creation_places_missing_ancestry_and_unfolds_existing_owners_atomically ... ok +test behavior::state_edit::tests::every_context_component_and_invalid_ownership_are_checked_before_planning ... ok +test behavior::state_edit::tests::placing_existing_content_and_moving_a_folded_group_preserve_other_views_and_semantics ... ok +test behavior::state_edit::tests::reconnect_preserves_the_complete_record_and_replaces_cardinality_in_place ... ok +test behavior::state_edit::tests::view_initializes_only_its_machine_in_one_source_and_model_history_entry ... ok +test behavior::states::tests::internal_choice_targets_self_and_edit_preserves_identity_and_description ... ok +test behavior::states::tests::invalid_pseudo_trigger_keeps_draft_and_does_not_create_orphan_event ... ok +test behavior::states::tests::selected_composite_owns_new_region_and_history_uses_selected_region ... ok +test behavior::states::tests::timeout_and_work_trigger_commit_together_roundtrip_and_undo ... ok +test behavior::tests::failed_document_commit_retains_typed_transition_and_time_event_for_repair ... ok +test behavior::tests::legacy_process_and_chain_keep_their_ordered_exchange_scene ... ok +test behavior::tests::one_behavior_form_survives_start_edit_and_unrelated_cancel_until_commit ... ok +test behavior::tests::recovery_preserves_distinct_qualified_value_paths_and_rejects_invalid_payload_atomically ... ok +test behavior::tests::recovery_retains_each_incomplete_behavior_form_without_executing_it ... ok +test behavior::tests::selecting_state_transition_keeps_its_behavior_context ... ok +test behavior::topology::contextual::tests::qualified_link_gui_deleted_transient_selection_does_not_seed_or_hide_retained_authored_endpoint ... ok +test behavior::topology::contextual::tests::qualified_link_gui_nested_preview_folds_only_the_exact_reference_instance ... ok +test behavior::topology::contextual::tests::qualified_link_gui_rejected_endpoint_keeps_exact_raw_intent_after_recovery ... ok +test behavior::topology::contextual::tests::qualified_link_gui_repeated_sources_remain_distinct_and_apply_has_exact_source_history ... ok +test behavior::topology::contextual::tests::qualified_link_gui_scope_paging_and_search_reach_tail_beyond_512_without_losing_endpoints ... ok +test behavior::topology::contextual_routing::tests::contextual_route_native_x_to_first_b_keeps_visible_arrow_above_background_and_clear_of_other_references ... ok +test behavior::topology::contextual_routing::tests::contextual_route_nested_visible_hidden_and_parallel_paths_keep_exact_addresses_and_legacy_routes ... ok +test behavior::topology::contextual_routing::tests::contextual_route_shared_anchor_preserves_selected_direct_reconnect_at_fit_and_full_scale ... ok +test behavior::topology::direct::selection::tests::camera_busy_context_bounds_and_escape_retire_captured_gestures ... ok +test behavior::topology::direct::selection::tests::exact_shift_toggle_and_stationary_group_click_defer_primary ... ok +test behavior::topology::direct::selection::tests::group_drag_uses_midpoint_anchors_and_original_order_and_singleton_after_gap ... ok +test behavior::topology::direct::selection::tests::mixed_group_at_endpoint_card_refuses_whole_drag_without_hidden_singleton_handle ... ok +test behavior::topology::direct::selection::tests::qualified_occurrences_and_visible_preview_links_keep_exact_invocation_paths ... ok +test behavior::topology::direct::selection::tests::selected_anchor_noop_and_irreversible_threshold_never_collapse_after_motion ... ok +test behavior::topology::direct::selection::tests::shift_on_visible_singleton_process_link_handle_toggles_that_link_not_underlying_card ... ok +test behavior::topology::direct::selection::tests::singleton_process_link_snapshot_reconnects_both_ends_but_stationary_release_is_inert ... ok +test behavior::topology::direct::selection::tests::whole_mixed_set_refuses_drag_delete_and_connect_without_singleton_bypass ... ok +test behavior::topology::direct_tests::direct_process_append_preserves_existing_order_and_rejects_incompatible_exchange ... ok +test behavior::topology::direct_tests::direct_process_controls_allow_incomplete_work_and_preserve_branch_semantics ... ok +test behavior::topology::direct_tests::direct_process_empty_first_and_second_exchange_keep_the_same_interactive_renderer ... ok +test behavior::topology::direct_tests::direct_process_imported_order_is_projected_without_mutation_and_first_canvas_edit_is_atomic ... ok +test behavior::topology::direct_tests::direct_process_incompatible_imported_order_rejects_conversion_without_losing_draft ... ok +test behavior::topology::direct_tests::direct_process_nested_source_reopen_and_api_command_use_one_transaction ... ok +test behavior::topology::direct_tests::direct_process_oa_sa_repeated_occurrences_share_sources_and_split_one_guarded_link ... ok +test behavior::topology::direct_tests::direct_process_palette_preserves_fit_and_manual_camera ... ok +test behavior::topology::direct_tests::direct_process_production_click_click_drag_insert_and_camera_coordinates ... ok +test behavior::topology::direct_tests::direct_process_production_endpoint_and_peer_reorder_handles_publish_exact_identity ... ok +test behavior::topology::direct_tests::direct_process_production_stale_focus_scroll_bounds_and_pending_cancel ... ok +test behavior::topology::direct_tests::direct_process_readable_default_fit_expansion_and_bounded_choices ... ok +test behavior::topology::direct_tests::direct_process_real_picker_stays_bounded_and_search_keeps_selection ... ok +test behavior::topology::direct_tests::direct_process_reconnect_delete_and_reorder_preserve_other_paths_and_sources ... ok +test behavior::topology::direct_tests::direct_process_reuse_preview_is_local_expandable_and_recursive_sources_are_rejected ... ok +test behavior::topology::direct_tests::direct_process_scaled_control_and_link_gestures_use_visible_positions ... ok +test behavior::topology::direct_tests::direct_process_specific_parallel_link_and_incompatible_adjacency ... ok +test behavior::topology::direct_tests::direct_process_three_ordered_exchanges_preserve_outer_paths_on_insertion ... ok +test behavior::topology::group_reorder::tests::process_group_columns_accept_all_local_card_kinds_and_different_heights ... ok +test behavior::topology::group_reorder::tests::process_group_columns_end_gaps_and_selected_anchor_noops ... ok +test behavior::topology::group_reorder::tests::process_group_columns_full_order_admission_precedes_selected_anchor_noop ... ok +test behavior::topology::group_reorder::tests::process_group_columns_legacy_exchange_order_refuses_cross_rank_group ... ok +test behavior::topology::group_reorder::tests::process_group_columns_parallel_links_keep_exact_ranks_and_relation_records ... ok +test behavior::topology::group_reorder::tests::process_group_columns_refuse_entire_invalid_typed_sets_before_noop ... ok +test behavior::topology::group_reorder::tests::process_group_columns_renderer_omits_links_to_unlisted_nodes_without_panicking ... ok +test behavior::topology::group_reorder::tests::process_group_columns_reverse_noncontiguous_selection_preserves_project_and_history ... ok +test behavior::topology::tests::cycle_projection_terminates_and_retains_actual_links ... ok +test behavior::topology::tests::empty_process_can_start_through_normal_authoring_events ... ok +test behavior::topology::tests::fitting_a_branch_keeps_all_nodes_visible_and_selection_uses_scaled_coordinates ... ok +test behavior::topology::tests::guarded_branch_is_one_transaction_with_distinct_source_identities ... ok +test behavior::topology::tests::insertion_picker_only_offers_work_matching_adjacent_exchanges ... ok +test behavior::topology::tests::legacy_branch_insertion_replaces_only_the_selected_implied_link ... ok +test behavior::topology::tests::legacy_edit_preserves_order_and_new_work_in_one_undo ... ok +test behavior::topology::tests::long_engineering_identifiers_stay_inside_label_width ... ok +test behavior::topology::tests::process_camera_selection_ignores_independent_details_scroll ... ok +test behavior::topology::tests::process_fit_uses_measured_height_and_reports_minimum_without_changing_manual_zoom ... ok +test behavior::topology::tests::process_zoom_and_disclosures_preserve_rejected_raw_draft_and_accepted_source ... ok +test behavior::topology::tests::reusable_preview_preserves_identity_and_filters_recursive_sources ... ok +test behavior::topology::tests::stale_or_invalid_submit_preserves_inputs_and_creates_nothing ... ok +test behavior::topology::tests::unlinked_contributions_do_not_gain_fictional_edges ... ok +test behavior::topology::usages::tests::expanded_nested_tiles_do_not_invent_links_the_preview_painter_does_not_emit ... ok +test behavior::topology::usages::tests::preview_arrow_focus_is_in_the_painted_gap_and_hidden_endpoints_never_fallback ... ok +test behavior::topology::usages::tests::process_contextual_purpose_and_painted_preview_links_keep_distinct_identities ... ok +test behavior::topology::usages::tests::process_usage_reveal_validates_before_state_changes_and_centers_the_exact_tile ... ok +test behavior::topology::usages::tests::process_usages_exclude_endpoint_coincidence_and_keep_actual_occurrences_and_links ... ok +test behavior::topology::usages::tests::process_usages_keep_caller_paths_and_exclude_unshown_fifth_preview ... ok +test behavior::topology::usages::tests::visible_preview_segment_excludes_all_opaque_tiles_for_reverse_and_cross_row_arrows ... ok +test behavior::topology::view::layout_tests::production_canvas_keyboard_and_delayed_tasks_respect_real_chooser_and_review_owners ... ok +test behavior::topology::view::layout_tests::production_process_caller_return_rejects_its_previous_camera_lifetime ... ok +test behavior::topology::view::layout_tests::production_process_camera_external_controls_bounds_and_retained_deltas_cancel_old_drags ... ok +test behavior::topology::view::layout_tests::production_process_canvas_focus_wheel_fit_and_stale_camera_are_presentation_only ... ok +test behavior::topology::view::layout_tests::production_process_canvas_scaled_path_creation_preserves_source_and_editor_bounds ... ok +test behavior::topology::view::layout_tests::production_process_form_replacement_resets_scroll_without_a_closed_render ... ok +test behavior::topology::view::layout_tests::production_process_keyboard_enters_activates_draws_focus_and_returns_to_inspector ... ok +test behavior::topology::view::layout_tests::production_process_keyboard_reveals_and_activates_initially_offscreen_last_tool ... ok +test behavior::topology::view::layout_tests::production_process_multiselect_modifiers_survive_focus_busy_and_clear_on_window_loss ... ok +test behavior::topology::view::layout_tests::production_process_multiselect_reverse_click_group_drop_has_one_history_step_and_stable_camera ... ok +test behavior::topology::view::layout_tests::production_process_retained_toolbar_intents_reject_chooser_dirty_and_picker_lifetimes ... ok +test connection_edit::tests::allocation_cancel_navigation_stale_context_and_pending_edits_preserve_model ... ok +test connection_edit::tests::allocation_candidates_reject_nonleaf_occupied_cross_layer_port_and_hidden_work ... ok +test connection_edit::tests::allocation_canvas_commits_only_one_relation_with_exact_source_undo_redo ... ok +test connection_edit::tests::allocation_creation_preserves_saved_edge_filters ... ok +test connection_edit::tests::allocation_mixed_view_keeps_captured_canvas_for_opposite_layer_pairs ... ok +test connection_edit::tests::allocation_projection_eligibility_requires_both_endpoint_categories ... ok +test connection_edit::tests::cancel_navigation_revision_and_dirty_drafts_cannot_commit_a_stale_connection ... ok +test connection_edit::tests::visible_endpoint_drawing_commits_ports_and_exchange_once_with_exact_history ... ok +test connection_tool::tests::boundary_candidates_match_core_orientation_and_reject_same_owner_or_mixed_kind ... ok +test connection_tool::tests::boundary_feasibility_keeps_interface_warnings_and_final_carried_item_checks ... ok +test connection_tool::tests::boundary_feasibility_rejects_dangling_identity_in_a_malformed_element_map ... ok +test connection_tool::tests::direct_connections_share_exact_source_history_and_model_parity ... ok +test connection_tool::tests::explicit_function_ports_keep_owners_contracts_and_do_not_invent_carried_items ... ok +test connection_tool::tests::final_command_validation_rejects_invalid_models_without_mutation ... ok +test connection_tool::tests::function_cards_use_unique_reuse_and_atomic_generation_when_ambiguous ... ok +test connection_tool::tests::mismatched_port_owners_layers_and_contract_kinds_are_not_candidates ... ok +test connection_tool::tests::operational_communication_uses_participants_without_creating_ports ... ok +test connection_tool::tests::operational_interaction_targets_only_distinct_oa_activities ... ok +test context_menu::tests::a_new_context_token_cannot_reuse_the_previous_mouse_press_or_scroll ... ok +test context_menu::tests::actions_area_does_not_swallow_first_independent_click_after_overlay_consumed_its_release ... ok +test context_menu::tests::anchors_outside_the_window_and_nonfinite_input_stay_bounded ... ok +test context_menu::tests::clicking_disabled_or_dragging_off_an_action_never_executes_it ... ok +test context_menu::tests::coalesced_dismissal_release_does_not_swallow_the_next_independent_click ... ok +test context_menu::tests::empty_and_disabled_only_menus_still_capture_keys_and_escape_closes ... ok +test context_menu::tests::keyboard_skips_headers_separators_and_disabled_actions_and_invokes_once ... ok +test context_menu::tests::mounted_keyboard_menu_paints_target_and_scroll_thumb_then_invokes_that_action ... ok +test context_menu::tests::outside_dismissal_consumes_press_and_release_across_controlled_close ... ok +test context_menu::tests::reconstructed_overlay_uses_retained_layout_for_rows_and_hit_testing ... ok +test context_menu::tests::retained_overlay_layout_keeps_measured_width_and_scrollbar_after_reconstruction ... ok +test context_menu::tests::tall_menu_clamps_to_viewport_and_keyboard_wheel_and_scrollbar_reach_the_end ... ok +test data_values::tests::phase_choices_keep_reused_record_addresses_distinct ... ok +test data_values::tests::recursive_picker_starts_with_distinct_leaf_names_and_sorts_them ... ok +test data_values::tests::recursive_records_can_be_drilled_into_and_valid_imported_paths_resolve ... ok +test data_values::tests::reference_parameter_stops_descent_and_unspecified_direction_remains_visible ... ok +test data_values::tests::roots_and_one_hop_children_do_not_expand_unrelated_payload_branches ... ok +test data_view::tests::allocation_rows_edit_relationship_identity_and_remove_only_that_allocation ... ok +test data_view::tests::association_creation_is_a_separate_relation_with_editable_end_contracts ... ok +test data_view::tests::browsing_pages_preserves_invalid_numeric_draft_and_inherited_allocation_identity ... ok +test data_view::tests::contextual_data_actions_use_typed_defaults_and_one_undo ... ok +test data_view::tests::large_inherited_dictionary_has_bounded_widgets_and_every_original_field_is_reachable ... ok +test diagnostic_input::tests::already_captured_terminal_cancels_child_without_activation_or_lingering_press ... ok +test diagnostic_input::tests::captured_terminal_cancellation_preserves_same_publication_focusable_child_state ... ok +test diagnostic_input::tests::current_primary_and_related_mouse_clicks_survive_same_publication_diff ... ok +test diagnostic_input::tests::current_touch_activates_primary_and_related_and_cancel_does_not_activate ... ok +test diagnostic_input::tests::fresh_mouse_press_after_missing_stale_release_can_activate_current_row ... ok +test diagnostic_input::tests::hidden_zero_height_scroller_delivers_cancelled_mouse_and_touch_terminals_to_guard ... ok +test diagnostic_input::tests::hidden_zero_size_list_consumes_release_outside_old_bounds_once ... ok +test diagnostic_input::tests::missed_press_is_ignored_and_dragging_release_outside_does_not_activate ... ok +test diagnostic_input::tests::negative_control_iced_button_retargets_a_press_after_plain_tree_diff ... ok +test diagnostic_input::tests::negative_control_plain_focusable_row_migrates_activation_to_replacement ... ok +test diagnostic_input::tests::negative_control_removing_unguarded_rows_exposes_background_release ... ok +test diagnostic_input::tests::outer_scroll_offset_survives_same_and_changed_publications ... ok +test diagnostic_input::tests::replaced_primary_and_related_rows_consume_stale_release_then_accept_new_click ... ok +test diagnostic_input::tests::replaced_touch_consumes_lift_or_cancel_even_when_hidden ... ok +test diagnostic_input::tests::same_publication_missing_terminal_recovers_on_fresh_mouse_or_touch_down ... ok +test diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame ... ok +test diagnostic_input::tests::same_publication_preserves_focus_but_replacement_never_inherits_activation ... ok +test diagnostic_input::tests::stale_release_does_not_bubble_to_real_background_controls ... ok +test diagnostic_input::tests::stale_touch_release_does_not_disarm_a_new_current_gesture ... ok +test diagnostic_input::tests::unrelated_finger_or_mouse_release_cannot_complete_another_fingers_press ... ok +test diagram::allocation_group_tests::allocation_handle_click_collapses_but_out_and_back_refuses_after_app_rebuilds ... ok +test diagram::allocation_group_tests::allocation_handles_keep_exact_edge_through_shift_and_pending_group_dispatch ... ok +test diagram::allocation_group_tests::armed_isolated_bend_is_owned_but_unarmed_controls_still_edit_routes ... ok +test diagram::allocation_group_tests::dirty_selected_pin_outer_ring_is_shielded_without_starting_pan ... ok +test diagram::allocation_group_tests::ordinary_performer_body_uses_one_token_and_retains_existing_movement_policy ... ok +test diagram::attachment_tests::attachment_camera_layout_focus_and_outside_release_cancel_after_motion ... ok +test diagram::attachment_tests::attachment_event_batches_commit_one_source_history_change_at_three_zooms ... ok +test diagram::attachment_tests::attachment_fast_release_uses_release_position_and_stays_in_one_view ... ok +test diagram::attachment_tests::attachment_reset_preserves_opposite_end_pins_label_and_semantics ... ok +test diagram::attachment_tests::attachment_stale_context_wrong_placement_and_unowned_route_fields_are_rejected ... ok +test diagram::attachment_tests::attachment_stationary_return_and_escape_leave_source_unchanged ... ok +test diagram::attachment_tests::attachment_wheel_and_middle_pan_cancel_before_same_batch_left_release ... ok +test diagram::attachment_tests::coincident_attachment_handles_honor_explicit_end_choice ... ok +test diagram::group_gesture::tests::any_frozen_viewport_change_is_detected ... ok +test diagram::group_gesture::tests::explicit_grid_and_default_constructor_keep_existing_quantization ... ok +test diagram::group_gesture::tests::finite_inputs_that_overflow_world_geometry_retire_without_an_operation ... ok +test diagram::group_gesture::tests::full_typed_selection_and_saved_surface_are_required ... ok +test diagram::group_gesture::tests::invalid_initial_geometry_cannot_start ... ok +test diagram::group_gesture::tests::invalid_pointer_permanently_retires_even_if_pointer_returns ... ok +test diagram::group_gesture::tests::offgrid_anchor_yields_one_shared_delta_and_release_matches_preview ... ok +test diagram::group_gesture::tests::release_only_displacement_that_snaps_to_zero_still_preserves_group ... ok +test diagram::group_gesture::tests::stationary_or_exact_threshold_release_is_click_without_snapping ... ok +test diagram::group_gesture::tests::threshold_latches_and_return_to_offgrid_origin_is_zero_move ... ok +test diagram::group_gesture::tests::unsnapped_fractional_pointer_delta_preserves_authored_offset ... ok +test diagram::group_gesture::tests::unsnapped_release_only_movement_and_invalid_pointer_retirement ... ok +test diagram::group_gesture::tests::unsnapped_threshold_and_return_to_origin_preserve_group_lifecycle ... ok +test diagram::group_gesture::tests::zoom_scales_world_delta_but_threshold_remains_in_screen_pixels ... ok +test diagram::lifecycle_tests::menu_reset_and_draw_use_fresh_open_context ... ok +test diagram::lifecycle_tests::middle_and_arrow_panning_preserve_source_and_history ... ok +test diagram::lifecycle_tests::motion_after_release_must_not_move_clicked_port ... ok +test diagram::lifecycle_tests::motion_after_source_click_release_must_not_create_connection ... ok +test diagram::multiselect_tests::changed_selection_generation_rejects_press_even_after_membership_is_restored ... ok +test diagram::multiselect_tests::changed_viewport_or_context_retires_group_without_a_release_intent ... ok +test diagram::multiselect_tests::delete_is_captured_without_hiding_during_live_group_then_release_moves_once ... ok +test diagram::multiselect_tests::escape_cancels_live_group_without_clearing_or_publishing_a_model_intent ... ok +test diagram::multiselect_tests::group_canvas_preview_and_release_match_independent_expected_geometry ... ok +test diagram::multiselect_tests::initial_press_without_pointer_history_consumes_release_only_displacement ... ok +test diagram::multiselect_tests::middle_pan_excludes_group_start_and_delete_even_when_left_is_pressed ... ok +test diagram::multiselect_tests::mixed_set_keeps_click_lifecycle_and_refuses_only_actual_drag ... ok +test diagram::multiselect_tests::shift_press_uses_ordered_hit_not_native_batch_final_cursor ... ok +test diagram::multiselect_tests::stationary_group_click_does_not_use_motion_after_release_in_same_batch ... ok +test diagram::multiselect_tests::threshold_crossing_then_return_to_origin_emits_zero_move_not_singleton_click ... ok +test diagram::pointer_tests::coalesced_fe_ports_commit_once_through_app_and_source_history ... ok +test diagram::pointer_tests::coalesced_port_drag_commits_once_through_app_and_source_history ... ok +test diagram::pointer_tests::drag_from_already_selected_stationary_port_keeps_source_between_batches ... ok +test diagram::pointer_tests::menu_captured_motion_must_not_turn_following_click_into_old_port_drag ... ok +test diagram::pointer_tests::modal_and_stale_epoch_block_queued_connection_and_port_commits ... ok +test diagram::port_hit_tests::coincident_ports_keep_selection_then_use_stable_identity ... ok +test diagram::port_hit_tests::nearest_port_center_wins_on_all_borders_and_zoom_levels ... ok +test diagram::port_hit_tests::nested_owner_palette_selection_drag_and_context_menu_pick_the_same_port ... ok +test diagram::port_labels::tests::leaving_and_reentering_keeps_suppression_until_each_held_button_releases ... ok +test diagram::port_labels::tests::menu_epoch_clears_suppression_when_the_overlay_consumes_release ... ok +test diagram::port_labels::tests::outside_presses_do_not_suppress_and_cancel_or_focus_loss_clear_held_buttons ... ok +test diagram::port_labels::tests::passive_layer_leaves_port_drag_selection_and_commit_with_the_interactive_canvas ... ok +test diagram::tests::association_end_contracts_share_svg_geometry_and_select_without_moving_name_label ... ok +test diagram::tests::bend_gestures_use_screen_hit_radius_and_commit_one_undo_at_three_zooms ... ok +test diagram::tests::coincident_line_hit_retains_the_selected_connection ... ok +test diagram::tests::connection_gestures_pick_real_ports_and_commit_coalesced_drag_at_every_zoom ... ok +test diagram::tests::detached_label_selects_connection_and_occluding_card_owns_its_hit ... ok +test diagram::tests::dragging_a_child_previews_the_same_enclosure_and_ports_as_commit ... ok +test diagram::tests::fast_drags_commit_the_release_cursor_without_a_final_motion_event ... ok +test diagram::tests::implicit_port_click_selects_semantics_and_drag_preview_svg_share_anchors ... ok +test diagram::tests::route_cache_ignores_pan_zoom_and_cancelled_drag_cannot_commit ... ok +test diagram::tests::routed_svg_has_same_polyline_label_and_bounds_as_canvas_scene ... ok +test diagram::tests::svg_accepts_populated_and_empty_architecture_views ... ok +test diagram::tests::svg_distinguishes_inferred_work_allocation_from_direct_allocation ... ok +test diagram::tests::svg_preserves_visible_exchange_labels_and_capability_stereotypes ... ok +test diagram::tests::svg_rejects_missing_diagram_without_mutation ... ok +test diagram::tests::svg_rejects_saved_scenario_with_absent_or_authored_layout_without_mutation ... ok +test diagram::tests::typed_function_glyphs_and_unoriented_standard_connections_have_distinct_svg ... ok +test diagram::view_options_tests::communication_svg_uses_saved_visibility_labels_and_direction ... ok +test diagram_selection::tests::changing_document_or_surface_clears_even_identical_target_ids ... ok +test diagram_selection::tests::exact_duplicates_are_noops_but_distinct_visual_identities_survive ... ok +test diagram_selection::tests::primary_removal_uses_latest_survivor_without_reordering ... ok +test diagram_selection::tests::reused_process_occurrences_reconcile_by_full_path_never_definition ... ok +test diagram_selection::tests::revision_reconciliation_retains_exact_survivors_but_invalidates_operations ... ok +test diagram_selection::tests::stale_epoch_selection_and_primary_cycles_do_not_regain_authority ... ok +test diagram_selection::tests::whole_and_rejected_targets_cannot_replace_an_existing_selection ... ok +test diagram_usage::coverage_tests::absent_endpoint_placements_and_hidden_performer_do_not_create_grouping_targets ... ok +test diagram_usage::coverage_tests::allocation_grouping_has_exact_relation_placements_and_readable_work_geometry ... ok +test diagram_usage::coverage_tests::allocation_grouping_walks_two_visible_summary_levels_without_inventing_allocations ... ok +test diagram_usage::coverage_tests::collapsed_leaf_and_edge_filter_still_leave_the_actual_nesting_visible ... ok +test diagram_usage::coverage_tests::folded_summary_or_performer_does_not_substitute_a_visible_ancestor_for_the_leaf ... ok +test diagram_usage::coverage_tests::other_projections_do_not_report_allocation_nesting_when_only_an_arrow_or_nothing_is_drawn ... ok +test diagram_usage::coverage_tests::repeated_saved_views_keep_allocation_placement_identity_and_geometry_independent ... ok +test diagram_usage::coverage_tests::role_derived_nesting_without_a_direct_allocation_does_not_invent_one ... ok +test diagram_usage::tests::folded_child_is_not_a_visible_node_and_placement_identity_stays_exact ... ok +test diagram_usage::tests::oversized_container_reveal_targets_its_labelled_header ... ok +test diagram_usage::tests::ports_are_found_at_the_visible_owner_and_unplaced_elements_do_not_match_names ... ok +test diagram_usage::tests::reveal_camera_centers_target_without_whole_view_shrink ... ok +test diagram_usage::tests::saved_membership_respects_filters_and_does_not_change_project ... ok +test diagram_usage::tests::state_machine_owner_finds_its_view_without_a_machine_placement ... ok +test diagram_usage::tests::whole_diagram_camera_fits_large_bounds_instead_of_individual_object_scale ... ok +test document::alias_rename::tests::each_identity_family_changes_only_authored_alias_roles_and_one_history_entry ... ok +test document::alias_rename::tests::equal_bytes_undo_replay_cross_document_and_exhausted_revision_refuse ... ok +test document::alias_rename::tests::exact_history_capacity_admits_immediate_undo_and_rejects_larger_candidate ... ok +test document::alias_rename::tests::highlighted_keyword_alias_is_valid_without_normalizing_input ... ok +test document::alias_rename::tests::invalid_and_identical_aliases_preserve_live_state_and_redo ... ok +test document::alias_rename::tests::mint_and_commit_refuse_exhausted_or_inconsistent_live_history_estimate ... ok +test document::alias_rename::tests::mutable_public_preview_copies_cannot_change_prepared_authority ... ok +test document::alias_rename::tests::preview_retains_latest_saved_baseline_and_recovery_state ... ok +test document::save_as_tests::save_as_preserves_explicit_source_entry_changes_in_history ... ok +test document::save_as_tests::save_as_rebases_uniform_history_without_an_undo_step_or_lost_redo ... ok +test document::save_as_tests::save_as_rejects_included_filename_collisions_in_past_and_future_without_mutation ... ok +test document::save_as_tests::save_as_rejects_stale_or_content_changing_receipt_atomically ... ok +test document::tests::accepted_history_keeps_the_latest_hundred_complete_snapshots ... ok +test document::tests::altered_compiled_model_or_index_is_rejected_without_mutation ... ok +test document::tests::asynchronous_save_marks_its_snapshot_without_cleaning_later_edits ... ok +test document::tests::byte_budget_trims_oldest_history_without_discarding_a_large_current ... ok +test document::tests::cached_view_index_tracks_accepted_creation_undo_and_redo ... ok +test document::tests::comment_and_semantic_history_restore_exact_bytes_and_branch_together ... ok +test document::tests::creation_selects_the_single_uuid_persisted_in_source ... ok +test document::tests::invalid_project_is_rejected_before_format_can_normalize_it ... ok +test document::tests::nested_cross_file_reparent_and_source_edit_share_exact_history ... ok +test document::tests::no_op_command_or_source_apply_preserves_history_revision_and_redo ... ok +test document::tests::omitted_id_stabilization_remains_dirty_until_exact_source_is_saved ... ok +test document::tests::recreated_equal_record_does_not_inherit_deleted_source_ownership ... ok +test document::tests::rejected_compile_command_and_writeback_preserve_state_and_redo ... ok +test explorer::tests::collapse_and_search_retain_context_without_changing_collapse_state ... ok +test explorer::tests::deep_containment_and_search_keep_the_full_path_without_recursion ... ok +test explorer::tests::equal_names_have_stable_alias_and_identity_tie_breakers ... ok +test explorer::tests::perspective_isolation_and_allocations_do_not_change_containment ... ok +test explorer::tests::prefix_names_cannot_separate_a_parent_from_its_children ... ok +test forms::data_fields::tests::defaults_distinguish_absent_empty_and_typed_literals_with_escaped_unicode ... ok +test forms::data_fields::tests::field_browser_pages_every_direct_field_without_flattening_other_records ... ok +test forms::data_fields::tests::independent_review_combined_take_type_informs_actual_default_form_in_both_directions ... ok +test forms::data_fields::tests::numeric_bound_drafts_keep_partial_and_full_precision_values_out_of_accepted_state ... ok +test forms::data_fields::tests::selecting_qualified_path_preserves_expression_typed_before_the_next_render ... ok +test forms::data_fields::tests::semantic_reference_choices_follow_selected_mechanism_and_revert_on_keep ... ok +test forms::data_fields::tests::supertype_picker_excludes_descendants_and_keeps_original_inherited_field_identity ... ok +test forms::history_fields::tests::history_absent_baseline_and_empty_history_use_explicit_facts_and_exact_document_history ... ok +test forms::history_fields::tests::history_clear_discards_inactive_invalid_constructors_before_reusing_the_same_row ... ok +test forms::history_fields::tests::history_compound_value_and_constructor_variants_are_editable_without_live_context ... ok +test forms::history_fields::tests::history_deleted_keys_and_observation_uuids_remain_exact_and_duplicate_history_rejects ... ok +test forms::history_fields::tests::history_every_descriptor_fact_choice_matches_actual_closed_types_and_source_contract ... ok +test forms::history_fields::tests::history_exact_strings_do_not_confuse_uuid_shaped_prose_or_literal_keys_with_references ... ok +test forms::history_fields::tests::history_invalid_numbers_survive_constructor_switch_reorder_removal_and_recovery ... ok +test forms::history_fields::tests::history_missing_semantic_field_can_be_added_and_removed_without_touching_prose_or_live_objects ... ok +test forms::history_fields::tests::history_nested_optional_number_events_switch_absent_present_and_recover_invalid_raw ... ok +test forms::history_fields::tests::history_nested_uuid_and_list_events_preserve_present_values_and_tagged_item_branches ... ok +test forms::history_fields::tests::history_optional_uuid_and_text_seed_absence_without_inventing_observations ... ok +test forms::history_fields::tests::history_primitive_type_choices_remain_visible_inside_the_tagged_union ... ok +test forms::history_fields::tests::history_retained_text_constructors_follow_exact_mode_without_changing_the_observation ... ok +test forms::port_fields::tests::all_demo_records_roundtrip_through_graphical_and_escaped_string_drafts ... ok +test forms::port_fields::tests::boundary_choices_honor_draft_direction_same_kind_and_direct_interface_items ... ok +test forms::port_fields::tests::contract_choices_follow_owner_and_never_offer_legacy_or_oa_typed_ports ... ok +test forms::port_fields::tests::failed_shape_keeps_incomplete_text_and_saved_contract_payloads ... ok +test forms::port_fields::tests::functional_endpoints_require_owner_direction_and_items_but_retain_bad_current_choice ... ok +test forms::port_fields::tests::interface_roles_offer_participants_and_component_ports_independent_of_orientation ... ok +test forms::port_fields::tests::port_allocation_choices_use_actual_owner_direction_and_ignore_edited_relation ... ok +test forms::port_fields::tests::standard_switch_retains_incompatible_orientation_until_explicit_repair ... ok +test forms::port_fields::tests::switching_function_direction_preserves_invalid_items_and_each_authored_payload ... ok +test forms::reference_chooser::tests::captured_choice_cannot_cross_document_revision_draft_record_or_array_path ... ok +test forms::reference_chooser::tests::catalog_search_disambiguates_repeated_names_containment_alias_and_exact_placement_identity ... ok +test forms::reference_chooser::tests::dismissal_swallows_matching_release_across_closed_rebuild_but_next_click_reaches_parent ... ok +test forms::reference_chooser::tests::empty_search_escape_tab_and_optional_clear_do_not_silently_choose_nil ... ok +test forms::reference_chooser::tests::historical_paths_never_open_and_only_explicit_choice_or_clear_is_a_write ... ok +test forms::reference_chooser::tests::mounted_clipboard_paste_and_ime_commit_preserve_whole_strings_without_selecting ... ok +test forms::reference_chooser::tests::mounted_filtered_row_click_uses_the_displayed_identity_and_scoped_write_intent ... ok +test forms::reference_chooser::tests::mounted_input_preserves_rapid_same_batch_typing_and_cursor_across_controlled_rebuilds ... ok +test forms::reference_chooser::tests::mounted_keyboard_pages_and_selects_only_the_highlighted_visible_candidate_once ... ok +test forms::reference_chooser::tests::mounted_overlay_clamps_at_three_field_positions_and_keeps_results_and_query_bounded ... ok +test forms::reference_chooser::tests::mounted_query_change_rejects_old_release_and_old_result_events_without_locking_popup ... ok +test forms::reference_chooser::tests::mounted_query_then_escape_in_one_batch_closes_and_relative_keys_keep_input_order ... ok +test forms::reference_chooser::tests::out_of_order_query_serials_cannot_restore_obsolete_results ... ok +test forms::reference_chooser::widget::paint_tests::mounted_chooser_keyboard_target_is_visible_and_enter_keeps_exact_identity ... ok +test forms::tests::data_and_port_choices_are_typed_but_retain_invalid_current_values ... ok +test forms::tests::editing_allocation_offers_other_performers_without_counting_itself_twice ... ok +test forms::tests::moving_placement_and_changing_identity_is_one_lossless_undoable_edit ... ok +test forms::tests::parent_choices_reject_cycles_without_removing_clear_or_current_choice ... ok +test forms::tests::reply_and_reuse_forms_offer_semantically_compatible_references ... ok +test forms::tests::scenario_choices_respect_owner_and_exchange_layer ... ok +test forms::tests::semantic_port_group_choices_use_combined_owner_and_retain_invalid_transferred_items ... ok +test forms::tests::shared_perspective_change_keeps_payload_and_rejects_incompatible_dependencies ... ok +test forms::tests::state_observation_picker_keeps_work_lifelines_allocated_to_machine_owner ... ok +test forms::tests::state_placement_form_uses_draft_destination_membership_without_changing_other_views ... ok +test forms::tests::state_projection_form_keeps_string_variants_and_requires_a_typed_context ... ok +test forms::view_fields::tests::category_family_change_retains_members_until_explicit_correction ... ok +test forms::view_fields::tests::selective_view_property_apply_recovery_and_undo_preserve_semantics_and_empty_choices ... ok +test guide::tests::filtering_and_related_navigation_keep_selection_visible ... ok +test guide::tests::guide_topic_navigation_resets_only_article_and_same_topic_search_keeps_scroll ... ok +test guide::tests::search_finds_concepts_in_walkthroughs_and_api_reference ... ok +test home::tests::corrupt_future_and_oversized_history_are_preserved_with_usable_session_history ... ok +test home::tests::failed_metadata_replace_keeps_previous_history_and_reports_memory_only_entry ... ok +test home::tests::first_and_replaced_metadata_are_parseable_and_contain_no_model_bytes ... ok +test home::tests::forgotten_and_missing_files_never_change_the_model_or_other_entries ... ok +test home::tests::loading_missing_history_does_not_create_files_or_directories ... ok +test home::tests::malformed_entries_and_unknown_fields_never_become_open_requests ... ok +test home::tests::successful_local_history_is_bounded_ordered_deduplicated_and_durable ... ok +test home::tests::unavailable_location_can_reappear_on_refresh_without_losing_identity ... ok +test home::tests::walkthrough_uses_packaged_bundle_before_development_and_reports_missing_assets ... ok +test hosted::client::tests::hosted_endpoint_validation_redacts_secrets_and_preserves_proxy_paths ... ok +test hosted::client::tests::hosted_lost_publication_response_is_uncertain_without_retry ... ok +test hosted::client::tests::hosted_open_rejects_incoherent_envelopes_missing_etags_and_unstable_ids ... ok +test hosted::client::tests::hosted_oversized_local_bundle_is_rejected_before_network_admission ... ok +test hosted::client::tests::hosted_production_auth_proxy_prefix_and_located_rejection ... ok +test hosted::client::tests::hosted_production_roundtrip_preserves_comments_noops_and_conflicts ... ok +test hosted::client::tests::hosted_publication_race_keeps_receipt_identity_for_review ... ok +test hosted::client::tests::hosted_publication_retains_known_resource_after_failed_followup ... ok +test hosted::client::tests::hosted_put_preserves_an_opaque_etag_and_compiles_the_accepted_bundle ... ok +test hosted::client::tests::hosted_redirect_is_not_followed_or_retried_and_problem_tokens_are_redacted ... ok +test hosted::client::tests::hosted_response_limits_cover_declared_and_chunked_bodies ... ok +test hosted::client::tests::hosted_structured_mutation_failures_distinguish_precommit_rejections ... ok +test hosted::client::tests::hosted_timeout_and_disconnect_leave_mutation_outcomes_explicit ... ok +test model_menu::tests::add_bend_here_uses_context_point_and_one_source_aware_history_change ... ok +test model_menu::tests::attachment_end_choice_is_captured_without_mutating_source_and_stale_menu_is_rejected ... ok +test model_menu::tests::late_menu_actions_do_not_dismiss_new_menu_or_cross_view_context ... ok +test model_menu::tests::menu_preserves_pending_properties_and_rejects_delayed_mutations ... ok +test model_menu::tests::pending_source_allows_file_navigation_but_disables_model_actions ... ok +test model_menu::tests::right_click_targets_actor_without_changing_selection_until_action ... ok +test model_menu::tests::show_from_explorer_places_unfolds_and_keeps_semantic_selection ... ok +test model_menu::tests::state_menu_folds_and_hides_only_its_captured_placement_and_rejects_stale_views ... ok +test model_menu::tests::state_menu_keeps_typed_creation_reachable_and_preserves_pending_properties ... ok +test model_menu::tests::traceability_show_menu_matches_cross_layer_and_port_placement_eligibility ... ok +test navigation::tests::semantic_browser_finds_behavior_users_without_confusing_containment ... ok +test port_edit::tests::all_border_drags_commit_exact_preview_and_restore_automatic_anchors_in_history ... ok +test port_edit::tests::graphical_port_reparent_clears_old_anchors_in_the_same_history_operation ... ok +test port_preview::tests::functional_creation_identifies_new_and_reused_endpoints_and_owners ... ok +test port_preview::tests::legacy_split_discloses_endpoint_routing_item_origins_and_retained_evidence ... ok +test port_preview::tests::reused_boundary_shows_item_union_and_existing_allocating_facts ... ok +test port_preview::tests::synchronization_preview_exposes_contract_shrinkage_and_current_declaration_origin ... ok +test port_workflow::recovery_tests::port_recovery_retains_authored_contract_and_identity_but_rebuilds_preview ... ok +test port_workflow::tests::creating_typed_port_and_rejecting_stale_preview_preserve_drafts_and_identity ... ok +test port_workflow::tests::graphical_function_exchange_and_component_generation_commit_and_undo_whole_contracts ... ok +test port_workflow::tests::legacy_resolution_preserves_original_record_and_applies_as_one_undo ... ok +test port_workflow::tests::port_creation_keeps_owner_diagram_and_unfolds_in_the_same_undo ... ok +test port_workflow::tests::synchronization_uses_active_contract_instead_of_preserved_direction ... ok +test recovery::source5::tests::source5_fingerprint_preserves_historical_field_order_and_diagram_shape ... ok +test recovery::source5_tests::source4_checkpoint_remains_explicitly_unsupported_without_touching_disk ... ok +test recovery::source5_tests::source5_checkpoint_does_not_refresh_unrelated_clean_buffer_baseline ... ok +test recovery::source5_tests::source5_checkpoint_missing_identity_is_not_a_lossless_upgrade ... ok +test recovery::source5_tests::source5_checkpoint_old_diagram_property_shape_remains_editable ... ok +test recovery::source5_tests::source5_checkpoint_port_draft_replans_and_rejects_stale_base ... ok +test recovery::source5_tests::source5_checkpoint_preserves_dirty_invalid_text_and_baseline_exactly ... ok +test recovery::source5_tests::source5_checkpoint_preserves_distinct_unapplied_open_workspace ... ok +test recovery::source5_tests::source5_checkpoint_property_preserves_invalid_raw_input ... ok +test recovery::source5_tests::source5_checkpoint_upgrade_never_rewrites_checkpoint_or_origin ... ok +test recovery::source5_tests::source5_checkpoint_upgrades_only_header_and_clean_editor_baseline ... ok +test recovery::source5_tests::source5_checkpoint_workflow_rebinds_only_the_proven_old_revision ... ok +test recovery::source7_tests::source7_current_combined_contextual_and_operation_drafts_survive_without_execution ... ok +test recovery::source7_tests::source7_explicit_new_fields_cannot_enter_frozen_old_model_profiles ... ok +test recovery::source7_tests::source7_legacy_inactive_constructor_path_is_structural_but_raw_prose_is_not ... ok +test recovery::source7_tests::source7_legacy_profile_workflow_and_semantic_drafts_replan_with_exact_base ... ok +test recovery::source7_tests::source7_legacy_profiles_preserve_dirty_source_property_and_behavior_raw_fields ... ok +test recovery::source7_tests::source7_legacy_structural_intent_rejects_even_null_but_never_scans_raw_strings ... ok +test recovery::source7_tests::source7_legacy_view_selector_refuses_new_relation_kind_without_rewriting_checkpoint ... ok +test recovery::source7_tests::source7_recovers_nonempty_frozen_5_and_6_profiles_with_exact_historical_binding ... ok +test recovery::tests::altered_accepted_identity_and_unrecognized_raw_property_fields_reject ... ok +test recovery::tests::exact_source_and_unfinished_invalid_buffers_restore_without_model_overwrite ... ok +test recovery::tests::excess_retained_buffers_cannot_replace_the_last_recoverable_checkpoint ... ok +test recovery::tests::invalid_open_retains_distinct_accepted_model_and_repair_workspace ... ok +test recovery::tests::missing_includes_remain_reachable_repair_targets_without_fabricated_buffers ... ok +test recovery::tests::multiple_sessions_replace_only_their_own_checkpoint_and_corruption_is_retained ... ok +test recovery::tests::raw_invalid_property_number_survives_and_stays_rejected_until_repaired ... ok +test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_draft_cannot_target_an_unreserved_or_non_artifact_identity ... ok +test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_raw_variants_duplicate_addresses_and_unknown_fields_are_refused ... ok +test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_reservations_cannot_duplicate_or_claim_an_existing_identity_or_another_owner ... ok +test semantic_review::artifacts_recovery_falsifier_tests::legitimate_invalid_artifact_checkpoint_round_trips_and_prepares_only_after_explicit_repair ... ok +test semantic_review::artifacts_tests::artifact_candidate_is_a_complete_record_not_a_tombstone_or_unattached_creation_shortcut ... ok +test semantic_review::artifacts_tests::artifact_creation_and_identified_source_deletion_follow_core_metadata_and_history_boundary_both_directions ... ok +test semantic_review::artifacts_tests::artifact_gui_reserves_recovers_and_creates_only_after_all_seven_metadata_reviews_both_directions ... ok +test semantic_review::artifacts_tests::artifact_metadata_apply_and_exact_history_reset_are_one_source_preserving_undo_redo ... ok +test semantic_review::artifacts_tests::artifact_move_metadata_none_empty_and_invalid_raw_recovery_are_independent_both_directions ... ok +test semantic_review::artifacts_tests::artifact_moved_source_absence_deletes_but_destination_only_take_retains_both_directions ... ok +test semantic_review::attachments::tests::absent_attachment_payloads_migrate_v1_and_v2_and_source5_upgrade_requires_exact_legacy_base ... ok +test semantic_review::attachments::tests::addressed_attachment_candidates_equal_direct_core_oracle_both_directions ... ok +test semantic_review::attachments::tests::attachment_apply_is_one_exact_source_and_history_undo_redo ... ok +test semantic_review::attachments::tests::attachment_candidate_and_direct_record_keep_conflict_on_actual_slot_without_losing_drafts ... ok +test semantic_review::attachments::tests::attachment_pair_drafts_survive_family_switch_and_restore_without_mutating_model ... ok +test semantic_review::attachments::tests::functional_incident_source_requires_explicit_matching_port_review_in_one_atomic_candidate ... ok +test semantic_review::attachments::tests::parent_and_each_endpoint_candidate_preserve_other_fields_and_match_core_both_directions ... ok +test semantic_review::attachments::tests::raw_rejected_attachment_reference_survives_recovery_and_wrong_scope_is_rejected ... ok +test semantic_review::attachments::tests::source_only_absence_and_explicit_absent_endpoint_are_different ... ok +test semantic_review::attachments::tests::two_incident_endpoint_candidates_form_one_complete_record_and_recover_invalid_excluded_draft ... ok +test semantic_review::batch_tests::batch_apply_is_one_exact_source_and_history_undo_redo_roundtrip ... ok +test semantic_review::batch_tests::batch_candidate_conflict_keeps_both_raw_values_and_keep_is_a_real_constraint ... ok +test semantic_review::batch_tests::batch_complete_constructor_cannot_erase_another_rows_new_literal ... ok +test semantic_review::batch_tests::batch_constructor_retirement_conflicts_with_another_rows_kept_bound_in_both_orders ... ok +test semantic_review::batch_tests::batch_delayed_text_targets_its_original_row_and_facet_without_switching_focus ... ok +test semantic_review::batch_tests::batch_excluded_invalid_row_survives_focus_reopen_and_v2_recovery ... ok +test semantic_review::batch_tests::batch_first_equal_constructor_acknowledgement_allows_an_independent_bound ... ok +test semantic_review::batch_tests::batch_joint_bounds_use_one_candidate_and_match_an_independent_atomic_core_oracle ... ok +test semantic_review::batch_tests::batch_reverse_distinct_targets_work_and_reverse_convergence_is_explicit ... ok +test semantic_review::batch_tests::batch_v2_rejects_duplicate_included_sources_bad_addresses_and_stale_model ... ok +test semantic_review::batch_tests::category_family_and_members_are_independent_core_checked_facets_both_directions ... ok +test semantic_review::batch_tests::recovered_trace_picker_names_existing_trace_instead_of_deleted_reference ... ok +test semantic_review::batch_tests::rejected_direction_switch_at_row_limit_preserves_every_recoverable_draft ... ok +test semantic_review::compose::diagnostic_tests::distinct_review_conflict_keeps_trace_aliases_even_when_names_are_equal ... ok +test semantic_review::compose::diagnostic_tests::reserved_creation_conflict_uses_its_rows_seed_instead_of_a_deleted_reference ... ok +test semantic_review::compose::diagnostic_tests::same_review_presence_and_owner_conflict_names_both_facets_and_owners_and_retains_drafts ... ok +test semantic_review::compose::diagnostic_tests::typed_owner_display_does_not_reinterpret_uuid_shaped_artifact_text ... ok +test semantic_review::constructor_tests::closed_data_and_event_take_composition_matches_core_across_every_kind_pair_and_direction ... ok +test semantic_review::constructor_tests::data_group_candidates_cover_every_definition_and_companion_default_both_directions ... ok +test semantic_review::constructor_tests::data_group_retains_invalid_sibling_drafts_companion_default_and_variant_editor_buffers ... ok +test semantic_review::constructor_tests::exchange_constructor_takes_qualified_annotation_addresses_without_remapping_expression_text ... ok +test semantic_review::constructor_tests::existing_fragment_and_branch_group_candidates_edit_complete_owned_order_without_deletion ... ok +test semantic_review::constructor_tests::group_take_reference_payload_and_scalar_candidate_match_core_and_one_document_batch ... ok +test semantic_review::constructor_tests::historical_event_keep_retires_only_obsolete_branch_and_unchanged_kind_acknowledges_no_payload ... ok +test semantic_review::constructor_tests::historical_same_kind_take_preserves_target_only_literals_when_composed_with_candidate ... ok +test semantic_review::constructor_tests::occurrence_and_event_candidate_variants_cover_closed_families_without_touching_headers ... ok +test semantic_review::constructor_tests::outer_and_nested_constructor_candidates_require_explicit_resolution_and_retain_both_drafts ... ok +test semantic_review::constructor_tests::port_group_companions_typed_owner_context_and_direction_restrictions_are_explicit ... ok +test semantic_review::constructor_tests::reverse_existing_typed_port_reviews_keep_or_candidate_legacy_without_permitting_typed_oa_write ... ok +test semantic_review::constructor_tests::scenario_use_group_takes_typed_binding_references_and_preserves_source_text_both_directions ... ok +test semantic_review::keyed_rows_tests::annotation_address_browser_descends_qualified_fields_without_changing_rows ... ok +test semantic_review::keyed_rows_tests::annotation_observations_keep_uuid_shaped_expression_text_in_both_sides_and_history ... ok +test semantic_review::keyed_rows_tests::batch_keyed_rows_compare_exact_target_slots_and_retain_independent_values ... ok +test semantic_review::keyed_rows_tests::binding_choices_separate_reused_keys_from_local_lifelines ... ok +test semantic_review::keyed_rows_tests::binding_local_picker_follows_a_candidate_parent_before_the_review_is_valid ... ok +test semantic_review::keyed_rows_tests::binding_take_requires_local_correspondence_and_candidate_rejects_wrong_scenario ... ok +test semantic_review::keyed_rows_tests::independent_rows_keep_take_candidate_match_core_and_preserve_siblings_both_directions ... ok +test semantic_review::keyed_rows_tests::keyed_recovery_retains_raw_rows_and_staged_pairs_both_directions_without_applying ... ok +test semantic_review::keyed_rows_tests::keyed_row_drafts_retain_expression_local_and_presence_across_decisions_and_staging ... ok +test semantic_review::keyed_rows_tests::keyed_rows_distinguish_unpaired_source_from_explicit_absence_and_require_exact_reset ... ok +test semantic_review::keyed_rows_tests::multiple_new_rows_compose_in_empty_collections_using_destination_key_order ... ok +test semantic_review::keyed_rows_tests::row_review_apply_preserves_exact_source_and_semantic_history_through_undo_redo ... ok +test semantic_review::keyed_tests::deleted_member_source_observation_removes_only_mapped_membership_both_directions ... ok +test semantic_review::keyed_tests::exact_literal_new_rows_and_removals_commit_both_directions_without_default_loss ... ok +test semantic_review::keyed_tests::exact_reset_only_is_one_history_source_transaction_and_undo_redo_both_directions ... ok +test semantic_review::keyed_tests::function_port_members_use_existing_typed_choices_and_preserve_oa_legacy ... ok +test semantic_review::keyed_tests::historical_one_sided_pair_migration_requires_exact_reset_and_explicit_overlap_resolution ... ok +test semantic_review::keyed_tests::invalid_literal_removal_and_unselected_scalar_buffers_are_retained_and_repairable ... ok +test semantic_review::keyed_tests::member_identity_labels_and_new_tabs_preserve_exact_names_and_deleted_keys ... ok +test semantic_review::keyed_tests::reset_precedes_equal_constructor_candidate_and_preserves_independent_literal_draft ... ok +test semantic_review::keyed_tests::staging_removal_and_obsolete_reset_recovery_keep_other_decisions_and_raw_presence ... ok +test semantic_review::keyed_tests::stale_or_source_failed_reset_and_membership_apply_retain_exact_choices ... ok +test semantic_review::keyed_tests::unordered_members_keep_take_candidate_preserve_other_rows_both_directions ... ok +test semantic_review::keyed_tests::unsupported_independent_families_and_missing_identities_do_not_gain_edit_authority ... ok +test semantic_review::message_kind_tests::message_group_candidate_closed_kinds_are_core_validated_in_both_directions ... ok +test semantic_review::message_kind_tests::message_group_candidate_timer_switches_preserve_both_drafts_and_overlap_is_explicit ... ok +test semantic_review::message_kind_tests::message_group_initial_equal_take_acknowledges_only_kind_and_checks_authored_timer_agreement ... ok +test semantic_review::message_kind_tests::message_group_keep_historical_switch_retires_timer_and_completed_no_switch_rejects ... ok +test semantic_review::message_kind_tests::message_group_rejects_protected_edits_stale_plan_and_source_failure_without_losing_timer ... ok +test semantic_review::message_kind_tests::message_group_reply_and_reference_take_require_explicit_call_mapping_both_directions ... ok +test semantic_review::message_kind_tests::message_group_take_full_timer_and_scalar_candidate_are_one_source_history_change_both_directions ... ok +test semantic_review::message_kind_tests::message_group_timer_does_not_erase_exchange_without_its_own_selected_decision ... ok +test semantic_review::ordered_tests::ambiguous_order_preserves_local_member_and_requires_explicit_candidate_positions ... ok +test semantic_review::ordered_tests::historical_pair_restore_uses_exact_member_keys_and_never_zips_order_observations ... ok +test semantic_review::ordered_tests::order_take_preserves_destination_only_positions_and_order_alone_cannot_add_members ... ok +test semantic_review::ordered_tests::ordered_membership_choices_stage_exact_pairs_in_all_owner_shapes ... ok +test semantic_review::ordered_tests::ordered_presence_keep_take_candidate_remove_only_selected_entry_and_order_take_reorders_only ... ok +test semantic_review::ordered_tests::ordered_review_apply_is_exact_source_history_transaction_with_reopen_and_undo_redo ... ok +test semantic_review::ordered_tests::ordered_take_uses_unique_anchors_and_matches_core_with_unrelated_candidate_both_directions ... ok +test semantic_review::ordered_tests::raw_order_survives_membership_changes_decisions_and_recovery_until_explicit_reconcile ... ok +test semantic_review::ordered_tests::several_incoming_members_follow_source_order_despite_independent_identity_sorting ... ok +test semantic_review::recovery::tests::raw_scalar_and_closed_constructor_drafts_recover_against_exact_model_only ... ok +test semantic_review::recovery::tests::version_one_without_orders_restores_raw_intent_and_replans_without_execution ... ok +test semantic_review::source7_tests::contextual_incident_leaf_keep_allows_path_change_but_conflicts_with_changed_leaf_both_directions ... ok +test semantic_review::source7_tests::reverse_operation_omission_gui_requires_raw_rationale_and_matches_one_core_batch_after_recovery ... ok +test semantic_review::source7_tests::semantic_operation_virtual_none_candidate_uses_exact_allocation_and_preserves_accepted_bytes ... ok +test semantic_review::tests::candidate_mixed_with_reference_take_uses_typed_correspondence_not_text_guessing ... ok +test semantic_review::tests::deselected_invalid_candidate_is_retained_but_does_not_poison_another_selected_scalar ... ok +test semantic_review::tests::explicit_trace_selection_updates_only_that_history ... ok +test semantic_review::tests::first_equal_constructor_acknowledges_only_kind_and_allows_independent_leaves ... ok +test semantic_review::tests::independent_review_clear_bound_ignores_retained_invalid_other_facet ... ok +test semantic_review::tests::independent_review_keyed_fact_titles_keep_live_deleted_and_qualified_identity ... ok +test semantic_review::tests::inherited_annotation_impact_requires_exact_acceptance_and_edits_clear_approval ... ok +test semantic_review::tests::invalid_numeric_draft_and_protected_edits_retain_workflow_and_source ... ok +test semantic_review::tests::read_only_structured_facts_and_partial_rollup_are_honest ... ok +test semantic_review::tests::relation_candidates_preserve_endpoints_and_combine_selected_roles_and_bounds ... ok +test semantic_review::tests::scalar_keep_take_candidate_commit_exact_source_and_history_in_both_directions ... ok +test semantic_review::tests::scoped_literal_list_edits_preserve_unfinished_values_and_other_facet_buffers ... ok +test semantic_review::tests::stale_plan_and_source_writeback_failure_do_not_lose_decisions_or_history ... ok +test semantic_review::tests::state_kind_scalar_uses_typed_candidate_and_core_validation ... ok +test semantic_review::view::reserved_artifact_tests::reserved_artifact_facet_and_reference_labels_survive_recovery_without_calling_it_deleted ... ok +test source_annotations::anchor_tests::final_multi_glyph_cluster_anchor_uses_logical_trailing_advance_edge ... ignored, manual supported-font cluster and bidi witnesses +test source_annotations::anchor_tests::mixed_direction_omitted_separator_has_one_logical_predecessor_anchor ... ignored, manual supported-font cluster and bidi witnesses +test source_annotations::layout_tests::combining_cjk_and_bidi_ranges_cover_actual_clusters_without_neighbor_aliases ... ok +test source_annotations::layout_tests::empty_eof_and_separator_ranges_follow_real_paragraph_ownership ... ok +test source_annotations::layout_tests::mismatched_affected_source_and_bottom_line_without_visible_underline_have_no_bands ... ok +test source_annotations::layout_tests::omitted_wrap_space_has_one_preceding_run_anchor_and_none_when_that_run_is_clipped_out ... ok +test source_annotations::layout_tests::repeated_alias_marks_only_second_actual_glyph_sequence_and_blank_space_misses ... ok +test source_annotations::layout_tests::wrapped_scrolled_multiline_range_uses_actual_visible_runs_and_effective_clip ... ok +test source_annotations::performance_tests::annotation_projection_cost_distributions ... ignored, manual diagnostic projection distributions; no fixed machine threshold +test source_annotations::tests::empty_source_has_real_zero_width_marker ... ok +test source_annotations::tests::exact_path_and_utf8_range_admission_keep_valid_neighbor ... ok +test source_annotations::tests::half_open_next_line_excluded_separator_only_and_empty_line_anchored ... ok +test source_annotations::tests::mixed_endings_use_actual_paragraphs_and_preserve_eof ... ok +test source_annotations::widget::tests::actual_word_and_line_selection_then_typing_survive_hover_and_publication_changes ... ok +test source_annotations::widget::tests::deferred_paragraph_renderer_rejects_the_old_local_lifetime ... ok +test source_annotations::widget::tests::deferred_tooltip_text_survives_draw_and_only_current_authority_is_retained ... ok +test source_annotations::widget::tests::disabled_hover_and_unavailable_cursor_hide_details_without_removing_current_marks ... ok +test source_annotations::widget::tests::measured_footer_and_omitted_count_fit_actual_shaped_widths_and_ancestor_clip ... ok +test source_annotations::widget::tests::pointer_motion_between_bands_blank_and_leave_is_passive_and_always_redraws ... ok +test source_annotations::widget::tests::stationary_pointer_replacement_absence_and_path_switch_use_only_current_index ... ok +test source_indentation::keyboard_tests::mounted_tab_dispatches_only_for_focused_editable_editor_and_plain_shift_variants ... ok +test source_indentation::tests::caret_inserts_four_spaces_and_outdent_removes_only_leading_whitespace ... ok +test source_indentation::tests::directional_blocks_preserve_unicode_endings_and_exclude_final_zero_column ... ok +test source_indentation::tests::no_op_outdent_preserves_semantic_word_selection_and_last_empty_line_is_excluded ... ok +test source_indentation::tests::outdent_handles_tabs_partial_spaces_and_clamps_endpoint_inside_removed_indent ... ok +test source_indentation::tests::word_and_line_selections_indent_effective_range_in_both_directions ... ok +test source_navigation::interaction::tests::captured_find_click_invalidates_without_app_message_and_preserves_focus ... ok +test source_navigation::interaction::tests::focus_rechecks_clock_between_inspection_and_application_and_missing_target_is_inert ... ok +test source_navigation::interaction::tests::raw_navigation_inputs_advance_but_passive_geometry_does_not_and_exhaustion_refuses ... ok +test source_navigation::query::tests::comments_strings_and_comment_gap_are_not_navigation_hits ... ok +test source_navigation::query::tests::detached_alias_and_identity_collisions_never_auto_select ... ok +test source_navigation::query::tests::dirty_but_parseable_text_has_current_names_and_no_validated_fallback ... ok +test source_navigation::query::tests::exact_multifile_unicode_crlf_definition_and_repeated_lexical_references ... ok +test source_navigation::query::tests::exact_snapshot_readback_rejects_same_key_byte_membership_and_evidence_changes ... ok +test source_navigation::query::tests::include_cycle_depth_and_aggregate_edges_are_explicit_partial_outcomes ... ok +test source_navigation::query::tests::invalid_include_syntax_never_borrows_the_old_reachable_file_set ... ok +test source_navigation::query::tests::keyword_alias_and_loaded_path_case_collisions_use_reviewed_index_rules ... ok +test source_navigation::query::tests::large_display_name_cannot_escape_the_owned_row_string_budget ... ok +test source_navigation::query::tests::missing_and_noncanonical_authored_ids_remain_draft_spans_without_generated_anchors ... ok +test source_navigation::query::tests::missing_include_partial_scope_does_not_resurrect_witness_text ... ok +test source_navigation::query::tests::omitted_rows_are_counted_before_result_allocation_and_never_confer_uniqueness ... ok +test source_navigation::query::tests::origin_keeps_exact_hit_when_display_rows_are_omitted ... ok +test source_navigation::query::tests::owned_request_checks_raw_limits_immediately_and_extracts_only_on_worker ... ok +test source_navigation::query::tests::owned_request_moves_exact_text_into_worker_snapshot_and_matches_sync_results ... ok +test source_navigation::query::tests::owned_validation_proof_preserves_full_witness_count_and_partial_scope ... ok +test source_navigation::query::tests::raw_aggregate_limits_refuse_before_outline_or_copied_snapshot ... ok +test source_navigation::query::tests::sole_detached_candidate_and_unapplied_equal_bytes_require_choice ... ok +test source_navigation::query::tests::token_declaration_and_live_reference_limits_are_aggregate_not_per_file ... ok +test source_navigation::query::tests::validation_witness_must_match_entry_and_complete_included_file_set ... ok +test source_navigation::selection::tests::absent_and_empty_selection_do_not_move_the_departing_caret ... ok +test source_navigation::selection::tests::expanded_word_and_line_modes_capture_multiline_ranges_in_both_directions ... ok +test source_navigation::selection::tests::line_selection_expands_past_its_interior_unicode_caret ... ok +test source_navigation::selection::tests::multiline_ranges_use_copied_lf_and_utf8_columns_for_physical_crlf_and_mixed_endings ... ok +test source_navigation::selection::tests::repeated_unicode_words_capture_the_selected_occurrence_without_searching ... ok +test source_navigation::selection::tests::trailing_newline_selection_restores_endpoint_on_the_empty_last_line ... ok +test source_navigation::selection::tests::unicode_normal_ranges_preserve_forward_and_reverse_direction ... ok +test source_navigation::symbols::tests::admitted_unicode_path_budget_keeps_original_policy_after_single_fold ... ok +test source_navigation::symbols::tests::comment_separated_reference_keeps_crlf_unicode_and_disjoint_hit_spans ... ok +test source_navigation::symbols::tests::declaration_order_and_duplicate_roles_refuse_instead_of_corrupting_hit_search ... ok +test source_navigation::symbols::tests::detached_uuid_clone_disables_anchor_even_for_included_query ... ok +test source_navigation::symbols::tests::duplicate_aliases_are_candidates_without_false_reference_attribution ... ok +test source_navigation::symbols::tests::every_budget_admits_boundary_and_returns_no_index_one_below ... ok +test source_navigation::symbols::tests::header_metadata_must_match_current_token_boundaries_and_authored_id ... ok +test source_navigation::symbols::tests::incomplete_draft_is_lexical_and_error_token_does_not_leak_references ... ok +test source_navigation::symbols::tests::legal_keyword_classified_alias_is_not_discarded ... ok +test source_navigation::symbols::tests::missing_ids_produce_only_current_snapshot_locations_without_stabilization ... ok +test source_navigation::symbols::tests::nested_declaration_extents_do_not_turn_body_text_into_definition_hits ... ok +test source_navigation::symbols::tests::noncanonical_header_identity_cannot_enter_through_query_metadata ... ok +test source_navigation::symbols::tests::path_identity_rejects_normalization_and_case_collisions ... ok +test source_navigation::symbols::tests::query_header_admission_preserves_uppercase_and_json_escape_bytes ... ok +test source_navigation::symbols::tests::repeated_live_uses_are_distinct_and_strings_comments_history_are_excluded ... ok +test source_navigation::symbols::tests::reused_alias_cannot_steal_old_identity_and_old_locations_are_stale ... ok +test source_navigation::symbols::tests::scope_provenance_and_detached_alias_collision_are_explicit ... ok +test source_navigation::symbols::tests::stopped_outline_is_not_a_successful_empty_query ... ok +test source_navigation::symbols::tests::truncated_or_gapped_tokens_refuse_even_when_project_scope_is_partial ... ok +test source_navigation::symbols::tests::unicode_path_collisions_match_core_lowercase_policy ... ok +test source_navigation::tests::search_uses_utf8_columns_wraps_and_refreshes_after_edits ... ok +test source_rename::origin::tests::maps_last_repeated_reference_with_unicode_crlf_and_comment_separator ... ok +test source_rename::origin::tests::permits_identifier_keyword_transitions_in_alias_roles ... ok +test source_rename::origin::tests::preserves_final_same_line_occurrence_not_first_or_prose ... ok +test source_rename::origin::tests::rejects_changed_trivia_non_alias_words_and_wrong_marker ... ok +test source_rename::preview::tests::each_bound_is_exact_and_overflow_never_returns_a_partial_preview ... ok +test source_rename::preview::tests::first_and_last_lines_form_complete_separate_hunks_and_pages ... ok +test source_rename::preview::tests::limits_apply_to_the_whole_preview_not_each_file ... ok +test source_rename::preview::tests::long_unicode_lines_are_fully_reachable_as_bounded_fragments ... ok +test source_rename::preview::tests::nearby_changes_merge_and_all_changed_files_are_reachable ... ok +test source_rename::preview::tests::preserves_unicode_mixed_endings_and_counts_lines_not_repeated_uses ... ok +test source_rename::preview::tests::refuses_membership_entry_line_count_and_line_ending_changes ... ok +test source_rename::preview::tests::unchanged_and_empty_sources_have_no_preview ... ok +test source_tree::tests::active_scroll_offset_uses_the_visible_order_and_retains_ancestor_context ... ok +test source_tree::tests::collapsed_folders_retain_active_dirty_and_diagnostic_markers ... ok +test source_tree::tests::deep_paths_build_expand_and_drop_on_a_small_stack ... ok +test source_tree::tests::detached_buffers_keep_paths_and_only_clean_buffers_are_closable ... ok +test source_tree::tests::exact_unicode_spaces_and_file_folder_name_collisions_are_not_normalized ... ok +test source_tree::tests::folders_are_compact_and_sorted_before_files_without_losing_duplicate_basenames ... ok +test source_workspace::tests::draft_history_budget_covers_inactive_files_without_discarding_drafts ... ok +test source_workspace::tests::fresh_session_cannot_reuse_a_retained_buffer_generation ... ok +test source_workspace::tests::navigation_revision_wrap_cannot_reuse_an_old_workspace_key ... ok +test source_workspace::tests::navigation_scope_changes_invalidate_without_changing_unchanged_positions ... ok +test source_workspace::tests::navigation_versions_distinguish_reopened_recovered_and_changed_drafts ... ok +test source_workspace::tests::switching_retains_invalid_drafts_and_independent_history ... ok +test style::tests::button_pair_couplings_cover_hover_and_disabled_states ... ok +test style::tests::conditional_input_styles_preserve_readonly_selected_value_contrast ... ok +test style::tests::default_checkbox_styles_keep_checks_and_outlines_distinct ... ok +test style::tests::default_input_styles_keep_ordinary_values_and_visible_selection ... ok +test style::tests::default_pick_list_and_menu_styles_cover_open_and_selected_states ... ok +test style::tests::ordinary_editable_editor_styles_keep_their_own_selected_value_readable ... ok +test style::tests::readonly::mounted_readonly_input_keeps_selection_copy_and_readable_paint ... ok +test style::tests::selected_navigation_adds_a_visible_outline_and_preserves_disabled_ink ... ok +test style::tests::semantic_text_and_essential_boundaries_have_contrast_on_canvas_surfaces ... ok +test style::tests::source_editor_syntax_and_fallback_remain_readable_during_selection ... ok +test tests::actor_port_creation_updates_containment_and_locate_reveals_its_owner ... ok +test tests::adding_bend_between_close_ports_stays_outside_owner_clearance ... ok +test tests::behavior_and_data_authoring_do_not_place_nodes_in_unrelated_architecture_views ... ok +test tests::bidirectional_transition_ui_commits_once_and_preserves_other_diagrams ... ok +test tests::counterpart_creation_focuses_visible_target_and_reuse_keeps_views ... ok +test tests::creation_from_capabilities_routes_work_to_architecture_and_folded_allocation_inserts_below_existing_work ... ok +test tests::dragging_keeps_semantic_selection_and_same_node_remains_editable ... ok +test tests::escaped_string_mode_preserves_exact_control_characters ... ok +test tests::every_demo_record_has_a_lossless_graphical_draft ... ok +test tests::explicit_relationship_builder_never_mutates_on_preview ... ok +test tests::explorer_and_creation_selection_follow_their_own_placement ... ok +test tests::fit_adapts_to_canvas_returning_after_help_but_preserves_manual_navigation ... ok +test tests::fit_uses_measured_canvas_bounds_and_preserves_them_on_open ... ok +test tests::focused_explorer_follows_reparenting_without_changing_identity ... ok +test tests::graphical_rename_keeps_aliases_and_references_and_undo ... ok +test tests::identity_property_change_is_atomic_and_rewrites_all_live_references ... ok +test tests::invalid_numeric_draft_survives_navigation_save_and_help ... ok +test tests::invalid_save_and_continue_returns_to_repairable_draft ... ok +test tests::malformed_source_preserves_model_and_is_recoverable ... ok +test tests::manual_trace_requires_target_and_selection_normalizes_creation_kind ... ok +test tests::mission_capability_authoring_is_contextual_atomic_and_text_equivalent ... ok +test tests::modal_owns_background_commands_and_shortcuts ... ok +test tests::nested_allocation_insertion_reflows_sibling_subtrees_and_preserves_fold_state ... ok +test tests::opening_and_creating_models_preserve_the_actual_window_size_for_fit ... ok +test tests::opening_legacy_source_surfaces_report_without_modifying_original_bytes ... ok +test tests::pending_source_prevents_property_draft_collision_and_preserves_both_if_present ... ok +test tests::placement_identity_edit_then_drag_and_diagram_identity_then_arrange ... ok +test tests::placement_relocation_follows_cross_layer_traceability_view ... ok +test tests::property_enum_and_optional_reference_roundtrip ... ok +test tests::reopening_canvas_for_a_modal_preserves_viewport_after_route_edits ... ok +test tests::revealing_an_implicit_function_port_unfolds_its_visible_architecture_owner ... ok +test tests::routing_actions_are_atomic_guarded_and_fit_the_authored_detour ... ok +test tests::selecting_current_constructors_preserves_payloads ... ok +test tests::source_find_navigates_an_invalid_draft_without_applying_or_losing_it ... ok +test tests::source_navigation_waits_for_editor_layout_and_cancels_on_edit ... ok +test tests::system_only_models_open_the_populated_perspective ... ok +test tests::transition_resolutions_belong_to_the_effective_target_and_kind ... ok +test view_copy::tests::duplicate_retains_ports_routes_options_and_artifact_claims_with_exact_undo_redo ... ok +test view_copy::tests::duplicate_state_view_preserves_machine_nesting_and_collapse_with_unique_aliases ... ok +test view_copy::tests::missing_view_does_not_propose_an_empty_replacement ... ok +test views::source_symbols::tests::suffixes_distinguish_nested_duplicate_basenames_without_changing_unicode ... ok +test views::source_tests::source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit ... ok +test views::tests::short_never_splits_retained_extended_graphemes ... ok +test views::tests::short_preserves_ascii_cjk_and_whitespace_policy ... ok +test views::tests::short_preserves_empty_and_small_limit_policy ... ok +test views::tests::short_preserves_native_lifeline_clusters_at_cutoff ... ok +test views::text_workspace::summary_visibility_tests::all_reference_exceptions_fit_allocated_width_with_wide_alias_and_large_counts ... ok +test views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests ... ok +test views::text_workspace::tests::five_slots_keep_editor_state_and_selection_through_explicit_and_passive_changes ... ok +test views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds ... ok +test views::text_workspace::tests::keyboard_resize_uses_effective_height_and_only_exact_open_drawer_shortcut ... ok +test views::traceability::tests::traceability_browsing_retains_invalid_property_draft_and_existing_select_guard ... ok +test views::traceability::tests::traceability_filter_reaches_artifacts_after_68_traces_and_searches_all_metadata ... ok +test workflow::communication::tests::communication_requires_two_explicit_ports_and_recovers_the_partial_choice ... ok +test workflow::counterparts::tests::query_preserves_reviewed_request_plan_ids_and_recovery_exactly ... ok +test workflow::counterparts::tests::recovered_invalid_or_missing_mapping_stays_visible_and_refuses_apply ... ok +test workflow::counterparts::tests::search_disambiguates_names_with_aliases_and_retains_creation ... ok +test workflow::counterparts::tests::trace_inference_counts_distinct_targets_and_explicit_mapping_wins ... ok +test workflow::port_authoring_tests::boundary_picker_matches_exact_commands_across_contracts_and_ownership ... ok +test workflow::port_authoring_tests::boundary_picker_recomputes_for_unoriented_reverse_endpoints_without_relaxing_contracts ... ok +test workflow::port_authoring_tests::duplicate_port_names_show_owner_contract_and_unique_alias ... ok +test workflow::port_authoring_tests::fresh_functions_are_actual_picker_targets_and_plan_enables_apply ... ok +test workflow::port_authoring_tests::generic_component_port_connection_keeps_its_endpoint_and_direction ... ok +test workflow::port_authoring_tests::ordinary_standard_connections_default_unoriented_and_new_roles_exclude_legacy ... ok +test workflow::recovery::tests::incomplete_relationship_and_trace_recover_raw_fields_and_reject_changed_model ... ok +test workflow::recovery::tests::transition_recovery_replans_typed_request_without_persisted_commands ... ok +test workflow::saved_scenario_destination_tests::empty_transition_results_do_not_make_a_scenario_an_architecture_destination ... ok +test workflow::transition_tests::basic_transition_boundary_choice_is_required_without_an_inferred_system ... ok +test workflow::transition_tests::basic_transition_creates_overview_when_existing_views_cannot_show_result ... ok +test workflow::transition_tests::basic_transition_explicit_destination_appends_below_existing_bounds_and_is_one_source_edit ... ok +test workflow::transition_tests::basic_transition_invalid_explicit_destination_retains_choice_and_refuses ... ok +test workflow::transition_tests::basic_transition_reconcile_keeps_existing_selected_view_placement_and_route_exact ... ok +test workflow::transition_tests::basic_transition_skips_lowest_uuid_state_view_and_preserves_oa ... ok + +failures: + +---- app::context_help_tests::mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret stdout ---- + +thread 'app::context_help_tests::mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret' (6736) panicked at crates\oa-desktop\src\app\context_help_tests.rs:389:5: +assertion `left == right` failed + left: "DSend" + right: "DRAFT Send" +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + +failures: + app::context_help_tests::mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret + +test result: FAILED. 1538 passed; 1 failed; 7 ignored; 0 measured; 0 filtered out; finished in 501.02s + +error: test failed, to rerun pass `-p oa-desktop --bin arcadia-studio` diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/00-environment-input-interference.png b/harness/experiments/compact-help-20260925/candidate-6e7c/00-environment-input-interference.png new file mode 100644 index 00000000..7c261369 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/00-environment-input-interference.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/01-allocation-normal.png b/harness/experiments/compact-help-20260925/candidate-6e7c/01-allocation-normal.png new file mode 100644 index 00000000..c180a7ba Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/01-allocation-normal.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/02-arrange-escape-cancelled.png b/harness/experiments/compact-help-20260925/candidate-6e7c/02-arrange-escape-cancelled.png new file mode 100644 index 00000000..974b6dbe Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/02-arrange-escape-cancelled.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/03-help-cancels-arrange.png b/harness/experiments/compact-help-20260925/candidate-6e7c/03-help-cancels-arrange.png new file mode 100644 index 00000000..1c23fa3b Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/03-help-cancels-arrange.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/04-guide-arrange-and-context-selection.png b/harness/experiments/compact-help-20260925/candidate-6e7c/04-guide-arrange-and-context-selection.png new file mode 100644 index 00000000..b0997e24 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/04-guide-arrange-and-context-selection.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/05-native-group-selection.png b/harness/experiments/compact-help-20260925/candidate-6e7c/05-native-group-selection.png new file mode 100644 index 00000000..c8910364 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/05-native-group-selection.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/06-group-primary-inspector.png b/harness/experiments/compact-help-20260925/candidate-6e7c/06-group-primary-inspector.png new file mode 100644 index 00000000..851ba4f0 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/06-group-primary-inspector.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/07-group-help-preserved.png b/harness/experiments/compact-help-20260925/candidate-6e7c/07-group-help-preserved.png new file mode 100644 index 00000000..5c24fccb Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/07-group-help-preserved.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/08-group-minimum.png b/harness/experiments/compact-help-20260925/candidate-6e7c/08-group-minimum.png new file mode 100644 index 00000000..733c5897 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/08-group-minimum.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/09-group-long-draft-caret.png b/harness/experiments/compact-help-20260925/candidate-6e7c/09-group-long-draft-caret.png new file mode 100644 index 00000000..4f2edd44 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/09-group-long-draft-caret.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/10-long-name-group-minimum.png b/harness/experiments/compact-help-20260925/candidate-6e7c/10-long-name-group-minimum.png new file mode 100644 index 00000000..a28578e9 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/10-long-name-group-minimum.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/11-long-name-undo.png b/harness/experiments/compact-help-20260925/candidate-6e7c/11-long-name-undo.png new file mode 100644 index 00000000..a0ba0af0 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/11-long-name-undo.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/12-long-name-redo.png b/harness/experiments/compact-help-20260925/candidate-6e7c/12-long-name-redo.png new file mode 100644 index 00000000..afded632 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/12-long-name-redo.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/13-clear-selection-stable-canvas.png b/harness/experiments/compact-help-20260925/candidate-6e7c/13-clear-selection-stable-canvas.png new file mode 100644 index 00000000..dc43c451 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/13-clear-selection-stable-canvas.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/14-minimum-arrange-cancelled.png b/harness/experiments/compact-help-20260925/candidate-6e7c/14-minimum-arrange-cancelled.png new file mode 100644 index 00000000..f6e5a5c2 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-6e7c/14-minimum-arrange-cancelled.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/baseline-proof.json b/harness/experiments/compact-help-20260925/candidate-6e7c/baseline-proof.json new file mode 100644 index 00000000..a41c098f --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-6e7c/baseline-proof.json @@ -0,0 +1,49 @@ +{ + "baseline_binary": "2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399", + "baseline_source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "model_files": { + "evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f", + "oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c", + "sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230" + }, + "matching_files": 37, + "baseline_captures": { + "baseline-allocation-compact.png": "d92a0cca62a038dcf0894d92b37a64028342c2365e3fb8880ed597222123d96f", + "baseline-trace-compact.png": "b608a3d75612d8c06aacc094a7aebd12a0798ce30f2126c00bc3ad61a9103217", + "baseline-trace-normal.png": "6dfb6c595af4247aab3600da0e0a25ba4b11151436e9fc4a406f1036053f71d0" + } +} diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/build-diskfull.log b/harness/experiments/compact-help-20260925/candidate-6e7c/build-diskfull.log new file mode 100644 index 00000000..58350182 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-6e7c/build-diskfull.log @@ -0,0 +1,13 @@ + Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) +error: linking with `clang.exe` failed: exit code: 1 + | + = note: "clang.exe" "-nolibc" "--unwindlib=none" "-m64" "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\rustcTnlaYV\\symbols.o" "<17 object files omitted>" "-Wl,-Bstatic" "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps/{librfd-17cc7ba2db223d7b,libwindows_sys-c21bfdf36c33841c,libreqwest-b01c69cdcc184887,libserde_urlencoded-ad8d1ce9366d3ed4,libryu-28cfd08a9cfed0fa,libhyper_rustls-c6aa16b733036ee9,libwebpki_roots-3b25851f8e797647,libtokio_rustls-71f10d02a9f9e4e6,librustls-b129a6e715773239,libsubtle-5343c5ccffb39419,libwebpki-008d50ae9e845dae,libring-738dab64282c6eef,libgetrandom-185bbb1050af4ba4,libuntrusted-8ff786a1980b4b0a,librustls_pki_types-1bd3655517871842,libzeroize-244976d554ece06f,libtower_http-92f42ef6b0d2c3ab,libtower-ee71091376f45b24,libtower_layer-f71a1751e33be8db,libhyper_util-b26eeba27e741a08,libbase64-727bb2e9e77ea808,libipnet-b58970b857bf6042,libtower_service-7458f32bbeb2d4e8,libhyper-e5ef4fb4f9b64063,libwant-32f9dd7f41c480ab,libtry_lock-9f27ccc0a055ed63,libhttparse-9c77e151b8820051,libatomic_waker-e967f7e415cea2c2,libhttp_body_util-70fa0b4576b964c7,libhttp_body-1e221e4b8f6ce076,liburl-2d7487f095ea9231,libidna-bdd1376744228939,libidna_adapter-8d8c45dfcc1fdf6e,libicu_properties-5116ed65b0290f32,libicu_properties_data-0a55d3110383d8cf,libicu_normalizer-59c6783bf6a5e835,libicu_normalizer_data-cc624475940b4280,libicu_collections-ac86742a9dd8c8f3,libutf8_iter-23877425cbbe33c4,libpotential_utf-5d5c86142dd78a68,libicu_provider-74f7f3fb4ccff39a,libicu_locale_core-4b506241af6d592b,libtinystr-e88fa031f78d8437,liblitemap-09d735fa86cca7ac,libwriteable-46a7de9410bcb5f2,libzerovec-cff32bbd5e0c6b4f,libzerotrie-29841486933b17fd,libyoke-8b1ba758d70a1f92,libstable_deref_trait-40a01113b84b1f7b,libzerofrom-731f79aa1e12a43c,libform_urlencoded-cc07c16f896fb577,libpercent_encoding-2c27496c68b2308e,libhttp-47a7410cfc172b84,libsync_wrapper-6990166b58a7374a,libiced-54e95b42341b7cc8,libiced_winit-23b740a37f597f0a,libwindow_clipboard-51aae3cf7171c4ae,libclipboard_win-397533c2e2575812,liberror_code-0cb8a5eb06ab8729,libwinit-ba7482330d748070,libtracing-a25988cc6932fd96,libtracing_core-2dc069dfba18ede6,libwindows_sys-06c2af6f098f909f,libcursor_icon-ad27fa28bd28652d,libdpi-f5f7fb1c621a018e,libiced_program-faa800d59f8cf4f3,libiced_runtime-f5d892a4468c5fc2,libiced_widget-bc791d156f4cfd76,libiced_renderer-c4ab1988ff971e1b,libiced_wgpu-05151d401b2c9884,libcryoglyph-394c415393a4e496,liblru-a0c556d4aa0be9d2,libetagere-455a97c27ee756a2,libsvg_fmt-1f58261d1798c1e9,libiced_graphics-88d4993206a7bf50,libcosmic_text-07313aa6396fe119,libunicode_linebreak-e99548291833529e,libsys_locale-373ce1af6158101a,libswash-0448d4a5d977af87,libyazi-69dfa79524f14886,libskrifa-3194c161b5e53b8f,libread_fonts-ee796e672f6c2b6c,libfont_types-fdb71694d8252b17,libzeno-2fc787934e8a7cd6,libunicode_script-5e054be55af8e282,libself_cell-d89d506b19b25665,libskrifa-412ea6d4d11f2dc3,liblinebender_resource_handle-6eb3532b81e3dcc4,libharfrust-5c2b9978b0c967e5,libread_fonts-8744340ce9121ebc,libcore_maths-faef5eec3886da5e,libfont_types-99a99c3a996c3bd4,libunicode_segmentation-85698043f7780858,libunicode_bidi-41a25178d914472d,libfontdb-007e59f002fbf373,libmemmap2-841beeb0f1a629ed,libtinyvec-ed5725dd372cdbbb,libtinyvec_macros-a96fb20256beac97,libslotmap-c71eec3eba975c2e,libttf_parser-8f55e332d9622b66,librangemap-1d6e4809bfb9c681,libiced_debug-d68e189ca6e5e94d,libiced_futures-21d53c891b708296,libtokio-32f8dc70905f1ae8,libsocket2-7bd46ba18d76d090,libmio-5aaf291c8a1a82a2,libfutures-c8a4a2dd096fb063,libfutures_util-954465db0beabc72,libfutures_io-d1a66ee3ff559f69,libslab-3db57bd04acfc5b7,libfutures_channel-f0d70c911fb49ec8,libpin_project_lite-0d6bdbd8d38ac50b,libfutures_sink-6891c37ab9c1935f,libfutures_task-c244bba7f8bc0ad1,libfutures_core-a87c441f491169b1,libiced_core-1d13dbae759b9d54,libsmol_str-89539eaf055e63b0,libbytes-868dcb997d7e2ad2,libglam-7b8723c7a526c9b6,liblilt-17be362c2994bcfd,libweb_time-13eade3aab5c4fbd,liblyon-063eec7b4f5857ce,liblyon_tessellation-e757adf775cd5f9f,libfloat_next_after-f37d5e9e563fe7b6,liblyon_algorithms-dc2b8f93e8c055a0,liblyon_path-6710403bd5294011,liblyon_geom-172a3f277acc316e,libeuclid-967fbc33480fe9dd,libwgpu-c66772292ba99515,libstatic_assertions-e30c198504c77e70,libwgpu_core-a4e715e10c28dead,libwgpu_hal-78560a3aac7e6c75,librenderdoc_sys-150f0489c8932654,libprofiling-bb4ce05fd7247125,libgpu_descriptor-fac3b710369873db,libhashbrown-8a58f54845fd2497,libfoldhash-0826f3f04e1a5796,libgpu_descriptor_types-1858d8bdd15c74e0,libgpu_alloc-ae6066a9278dbce7,libgpu_alloc_types-6f4c59d95c6ccee0,libash-440c79a90c728602,liblibloading-caa2519b5fd816c1,libraw_window_handle-1ab25a8146a57318,libglutin_wgl_sys-742d4309c6cfdd6a,libglow-cab264c6898aaf59,libgpu_allocator-967bbc1f342725e4,libthiserror-a8562c576260b66e,libordered_float-3e5668be355b3641,libnaga-3247450b2e5adca0,librustc_hash-71721ceb4e769227,liblibm-e719636fa88f224d,libhexf_parse-279b990594c7bbce,libunicode_ident-37cacd323a49429c,libhalf-1ab7db42c93fea7a,libzerocopy-979d2b49b0a33b61,libcodespan_reporting-c8463518e64796c8,libunicode_width-a4d3f1bb5e70cf28,libindexmap-dc1dca82289f6c3a,libequivalent-931efacfebdb5c9a,libhashbrown-4523d7ebe1eb39bc,libspirv-3c846a010ac2043e,libarrayvec-92be7823c1701233,libhashbrown-36be56b51a83d7b4,libfoldhash-cd2bdaf593944293,librange_alloc-a1b6caee1ada41b9,libbit_set-da34d352eec872be,libbit_vec-7ce2332a32227516,libwindows-014414f636af3fdb,libwindows_core-4be59f50c7b0594f,libwindows_strings-c5d7342436cf8f6e,libwindows_result-f79db900493f52d7,libwindows_targets-9dce04242e096695,libparking_lot-27eddcbf60d1f561,libparking_lot_core-0302be869d537889,libsmallvec-03b374e5162cc6f4,liblock_api-1876e768f77cff74,libscopeguard-aa21239770b8fec6,libwgpu_types-dc39388ab7fe1280,liblog-668dd0f53e95dee3,libbitflags-3f56d892d72d4301,libbytemuck-22539c4113ad2896,librustc_hash-fd887c9fa238ccd0,liboa_core-df760d8519a8fca0,libsame_file-e8a4d164978c7bf3,libwinapi_util-178409c37516f0da,libtempfile-86aac28d6be16d2f,libfastrand-3df248e815d242e1,libonce_cell-33f899677e2400c0,libwindows_sys-ab7e56959c51c45e,libwindows_link-23f115c823619f71,libuuid-f7851e8936dae115,libgetrandom-6e8efb5a01ff0cbb,libcfg_if-805b2ebc84d544f1,libsha1_smol-c4b7e5ec8b41792e,libserde_json-39fc764f03e68759,libmemchr-7db6cba96e96932f,libitoa-971c3e13d32ffcf2,libzmij-9f8770986f00ef15,libthiserror-464ee2be8b2a6d3a,libnum_bigint-d6d120f3af66962a,libnum_integer-acaf8380c427fe8c,libnum_traits-91eb21bbd3c14caf,libserde-698855389a914a01,libserde_core-f52ac0796dd4fc39}.rlib" "\\lib\\rustlib\\x86_64-pc-windows-gnullvm\\lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,libwindows_link-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lwindows.0.52.0" "-lbcrypt" "-ladvapi32" "-lkernel32" "-luser32" "-lshell32" "-lgdi32" "-ladvapi32" "-lwindows.0.52.0" "-lkernel32" "-lopengl32" "-lwindows.0.52.0" "-lwindows.0.52.0" "-lwindows.0.52.0" "-lwindows.0.52.0" "-lkernel32" "-lkernel32" "-lkernel32" "-lkernel32" "-lntdll" "-luserenv" "-lws2_32" "-ldbghelp" "-lunwind" "-lmingw32" "-lmingwex" "-lmsvcrt" "-lkernel32" "-luser32" "-Wl,--nxcompat" "-L" "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\ring-5f8d2d20440f09b4\\out" "-L" "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_gnullvm-0.52.6\\lib" "-L" "\\lib\\rustlib\\x86_64-pc-windows-gnullvm\\lib" "-o" "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\arcadia_studio-ba9796c2bda2a9a0.exe" "-Wl,--gc-sections" "-Wl,--strip-debug" "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\oa-desktop-307d320bbc13ccd5\\out\\normal-user-manifest.o" + = note: some arguments are omitted. use `--verbose` to show all linker arguments + = note: LLVM ERROR: IO failure on output stream: No space left on device + PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. + Stack dump: + 0. Program arguments: C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/llvm-mingw-20260826-ucrt-x86_64/bin/ld.lld @C:/Temp/response-80a8f9.txt + clang-23: error: linker command failed with exit code 1 (use -v to see invocation) + + +error: could not compile `oa-desktop` (bin "arcadia-studio") due to 1 previous error diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/build.json b/harness/experiments/compact-help-20260925/candidate-6e7c/build.json new file mode 100644 index 00000000..2ab19c09 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-6e7c/build.json @@ -0,0 +1,6 @@ +{ + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "binary": "D55ECAD4B0F75C0C9C26625E5441BEF9C9360890B65BC13236C6EBFAF03D631E", + "buildExit": 0, + "runtime": "F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4" +} diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/build.log b/harness/experiments/compact-help-20260925/candidate-6e7c/build.log new file mode 100644 index 00000000..cfeaffc2 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-6e7c/build.log @@ -0,0 +1,2 @@ + Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) + Finished `dev` profile [unoptimized] target(s) in 2m 21s diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/clippy.log b/harness/experiments/compact-help-20260925/candidate-6e7c/clippy.log new file mode 100644 index 00000000..74105d1b --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-6e7c/clippy.log @@ -0,0 +1,2 @@ + Checking oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) + Finished `dev` profile [unoptimized] target(s) in 5m 24s diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/fmt.log b/harness/experiments/compact-help-20260925/candidate-6e7c/fmt.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/review.md b/harness/experiments/compact-help-20260925/candidate-6e7c/review.md new file mode 100644 index 00000000..b5a7f1cf --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-6e7c/review.md @@ -0,0 +1,49 @@ +# Final native UX retest + +Independent review by `/root/ux_critique`, using Windows Computer Use (`@oai/sky`). Final preparation and launch began on 2026-09-29; the resumed input session completed on 2026-10-01 America/Los_Angeles (completion clock: 2026-10-02 00:42:55 UTC). + +## Identity and scope + +- Source: `6e7c4ddaf0775198384a8c4882809ea8e14b2976`. +- Executable: `.local/native-final/arcadia-studio.exe`, SHA-256 `D55ECAD4B0F75C0C9C26625E5441BEF9C9360890B65BC13236C6EBFAF03D631E`. +- Runtime: `libunwind.dll`, SHA-256 `F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4`. +- Read build identity from `build.json`. Parent launched this executable with a stdout/stderr/exit watcher; reviewer selected its unique returned native window and did not launch another executable. +- Model: only `.local/native-final/model/project.arcadia`, copied from the released water-pressure fixture. `baseline-proof.json` records its 37 original file hashes and baseline source/binary identity. No Save was performed. +- Normal window: 1440x900 client, captured 1442x932. Minimum: 1100x700 client, captured 1102x732. Same native environment and baseline fixture as prior review. + +This is a bounded final-delta retest plus previously missing native group-selection/long-name coverage. The earlier `../candidate-5657/review.md` remains historical evidence for Process draft, State, Traceability, refused allocation, and resize-with-Help workflows on source `5657a996...`; those are not silently relabeled as this binary's results. + +## Result + +No blocking UX defect found in the workflows below. The two final minor corrections behave as intended, and the newly exercised native group workflow passed. + +### Arrange cancellation and disclosed guidance + +1. In the populated Allocation view, clicked Arrange. The control displayed its check and footer showed the armed state. +2. Pressed Escape. The check cleared and footer became `Arrange cancelled`, replacing the obsolete armed outcome. Repeated at minimum size with the same result. Evidence: `02-arrange-escape-cancelled.png`, `14-minimum-arrange-cancelled.png`. +3. Armed Arrange again, then opened contextual Help with the pointer. Help opened and footer became `Arrange cancelled`. Visible Close returned to the same model and canvas. Evidence: `03-help-cancels-arrange.png`. +4. Used PageDown to reach the relevant guide paragraphs. They now say `Choose Arrange` / `choose Arrange or press Alt+A`, matching the visible control, and explain right-click Add to selection / Inspect this element. Evidence: `04-guide-arrange-and-context-selection.png`. + +### Native group selection and primary inspector + +1. Clicked `Assess pressure alarm`; right-clicked `Repair valve in the field`; chose `Add to selection` from the ordinary context menu. Both cards gained selected outlines and the row displayed `2 selected`, `Hide selected`, `Clear`, and `Properties: Repair valve ... only`. Inspector showed the Repair activity. Evidence: `05-native-group-selection.png`. +2. Right-clicked the selected Assess card and chose `Inspect this element`. Both cards stayed selected; Inspector switched to Assess and the row's `Properties: ... only` summary followed it. Evidence: `06-group-primary-inspector.png`. +3. Opened F1 Help and dismissed with Escape. The same pair, primary inspector, canvas position and zoom remained. Evidence: `07-group-help-preserved.png`. +4. Resized to the configured minimum through the native window system menu. The group controls remained readable and reachable, with the full-width Destination slot above them. The intentional resize refitted the view; subsequent selection/draft/help transitions did not move its canvas boundary. Evidence: `08-group-minimum.png`. + +### Long name, exact caret, Apply, Undo and Redo + +1. With both cards still selected and Assess as primary, focused its Name field and replaced the draft with `Pressure alarm assessment with a deliberately long operational activity name LEFT RIGHT`. +2. Ctrl+Left placed the caret before RIGHT. Opened F1, pressed End to scroll Help, dismissed with Escape, and typed X without clicking the field. Reopened F1, used visible Close, and typed Y without refocusing. Pressing End in the restored field exposed the ending `LEFT XYRIGHT`. Thus both dismissal paths preserved the exact draft caret, not merely the draft contents. The pair and primary inspector also remained unchanged. Evidence: `09-group-long-draft-caret.png`. +3. Clicked Apply changes. Only the primary Assess activity acquired the long name; Repair retained its original label. At minimum size, the selection row remained one stable row: count, Hide selected, Clear, and a shortened `Properties: Pressure alar... only` summary. The truncation did not hide the `only` distinction or an action. The Inspector Name field remained editable/scrollable for the complete name. Evidence: `10-long-name-group-minimum.png`. +4. Clicked the non-editable summary row to leave the text input, then Ctrl+Z restored `Assess pressure alarm` and the UI's saved state. Ctrl+Y restored the long name and unsaved state. Ctrl+Z restored the original name and saved state again. The group remained selected through all three operations. Evidence: `11-long-name-undo.png`, `12-long-name-redo.png`. +5. Clicked Clear. The group cleared, Inspector returned to view properties, and the canvas boundary and card positions remained stable. Evidence: `13-clear-selection-stable-canvas.png`. + +## Environment observation and limits + +- Initial Ctrl+O unexpectedly opened Windows On-Screen Keyboard, obscuring the target. Its screenshot showed a highlighted Windows key; another observation showed a different highlighted key without another keyboard action from this reviewer. Input was stopped and the parent notified. The keyboard was already absent on the next fresh window enumeration; reviewer did not close it or press any Windows-key control. Used pointer Open and a literal copied-fixture path to continue. Subsequent Escape, PageDown, F1, Ctrl+A, Ctrl+Left, Alt+Space, Undo/Redo and typing produced the expected target-app responses. This transient environment interference is preserved in `00-environment-input-interference.png`; it is not attributed to an application defect. +- Native modifier-click remains untested; native group selection was genuinely exercised through the supported context menu instead. No multi-item drag/assignment was attempted in this final retest. Prior successor refused-drag evidence is separate. +- Process/State/Scenario, source-editor caret, all Help navigation keys and resize while Help is open were not all repeated on this final binary. The final run directly exercised property draft/caret, group preservation, PageDown and End, F1/Escape/Close, minimum sizing and edit recovery. Full acceptance must combine the accurately versioned evidence rather than infer missing workflows from screenshots. +- Saved-state labels, counts and visible Undo results do not prove whole-Project equality. This review made no Save; post-close byte-hash and watcher-log checks belong to the parent and are recorded separately. + +Before closure, UI showed `All changes saved`, original activity names, 94 objects, 62 links and one model check. Closed normally with Alt+F4. Fresh native window enumeration confirmed the final application's window was absent. Parent was notified to inspect watcher stdout/stderr/exit and fixture hashes. No crash dialog was observed; native window disappearance alone is not an asserted exit code. diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/runtime.json b/harness/experiments/compact-help-20260925/candidate-6e7c/runtime.json new file mode 100644 index 00000000..7f508a0b --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-6e7c/runtime.json @@ -0,0 +1,10 @@ +{ + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "binary": "D55ECAD4B0F75C0C9C26625E5441BEF9C9360890B65BC13236C6EBFAF03D631E", + "started_utc": "2026-09-29T14:58:41.721798+00:00", + "pid": 7964, + "exit_code": 0, + "finished_utc": "2026-10-02T00:42:39.601915+00:00", + "stdout_bytes": 0, + "stderr_bytes": 0 +} diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/stderr.log b/harness/experiments/compact-help-20260925/candidate-6e7c/stderr.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/stdout.log b/harness/experiments/compact-help-20260925/candidate-6e7c/stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20260925/candidate-6e7c/tests.log b/harness/experiments/compact-help-20260925/candidate-6e7c/tests.log new file mode 100644 index 00000000..83d2e6cb --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-6e7c/tests.log @@ -0,0 +1,132 @@ + Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) + Finished `test` profile [unoptimized] target(s) in 5m 01s + Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-c5b42126ba36cd38.exe) + +running 125 tests +test allocation_drag::tests::allocation_artifact_and_manual_trace_cascades_are_named_and_refused ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_detects_hidden_moved_child_and_stationary_enclosure_growth ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_distributed_oa_sa_exact_scope_routes_source_history_and_anchor ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_noop_stale_tamper_target_and_all_selected_headers ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_performer_closure_does_not_acquire_incidental_semantic_root ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_preserves_existing_overlap_but_refuses_its_growth ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_preserves_roles_and_does_not_invent_unplaced_descendants ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_preserves_unrelated_folded_interior_diagnostic_boundary ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_simultaneous_roots_may_enter_each_others_vacated_bounds ... ok +test allocation_drag::tests::arrange_tests::explicit_arrange_validates_all_original_members_before_normalizing ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_checks_original_identity_and_visibility_before_normalization ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_distributed_parent_refuses_but_its_independent_leaves_can_reassign ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_finish_rejects_stale_project_and_each_tampered_result ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_normalizes_parent_child_and_assigns_unplaced_leaf_once ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_requires_non_anchor_selected_header_inside_viewport ... ok +test allocation_drag::tests::assignment_boundary_tests::group_assignment_unresolved_oa_role_leaf_accepts_explicit_target_but_not_outside ... ok +test allocation_drag::tests::assignment_tests::group_assignment_accumulates_stable_ids_and_aliases_without_partial_reuse ... ok +test allocation_drag::tests::assignment_tests::group_assignment_collateral_surviving_constraint_refuses_whole_semantic_candidate ... ok +test allocation_drag::tests::assignment_tests::group_assignment_deletes_only_own_routes_across_views_and_keeps_internal_flow ... ok +test allocation_drag::tests::assignment_tests::group_assignment_independent_performers_preserves_already_correct_provenance ... ok +test allocation_drag::tests::assignment_tests::group_assignment_source_failure_preserves_existing_history_and_retry_ids ... ok +test allocation_drag::tests::assignment_tests::group_assignment_unfolds_only_changed_destination_and_refuses_newly_exposed_overlap ... ok +test allocation_drag::tests::assignment_tests::group_assignment_uses_vacated_space_and_one_complete_route_owner_map ... ok +test allocation_drag::tests::assignment_tests::group_assignment_zero_delta_changes_semantics_once_and_then_is_noop ... ok +test allocation_drag::tests::cache_plan_uses_candidate_index_and_same_pixel_different_target_changes_preview ... ok +test allocation_drag::tests::collapsed_target_unfold_is_explicit_and_no_other_fold_changes ... ok +test allocation_drag::tests::direct_exit_revealing_another_role_performer_has_truthful_refusal ... ok +test allocation_drag::tests::explicit_different_performer_retains_advisory_role_warning ... ok +test allocation_drag::tests::folded_subtree_cannot_hide_new_collision ... ok +test allocation_drag::tests::geometry_refuses_new_overlap_bounds_and_invisible_headers_and_preserves_existing_overlap ... ok +test allocation_drag::tests::group_arrange_experiment::mixed_arrange_experiment_detects_moved_folded_child_collision ... ok +test allocation_drag::tests::group_arrange_experiment::mixed_arrange_experiment_detects_stationary_enclosure_growth_collision ... ok +test allocation_drag::tests::group_arrange_experiment::mixed_arrange_experiment_distributed_root_and_performer_can_translate_rigidly ... ok +test allocation_drag::tests::group_arrange_experiment::mixed_arrange_experiment_unrelated_folded_interiors_are_outside_diagnostic_domain ... ok +test allocation_drag::tests::malformed_scope_wrong_projection_duplicate_placement_and_stable_id_collision_refuse ... ok +test allocation_drag::tests::mixed_p_x_y_refuses_semantic_and_arrange_instead_of_stretching_destination ... ok +test allocation_drag::tests::oa_communication_incompleteness_remains_advisory_without_collateral_loss ... ok +test allocation_drag::tests::oa_sa_incoming_between_outgoing_preserve_identity_source_history_and_other_views ... ok +test allocation_drag::tests::oa_sa_one_leaf_move_refuses_when_ancestor_regrouping_introduces_unrelated_overlap ... ok +test allocation_drag::tests::oa_sa_one_leaf_reassignment_and_outward_move_regroup_ancestors_without_moving_sibling ... ok +test allocation_drag::tests::oa_sa_populated_collapsed_target_accepts_room_and_refuses_collision_without_relocating_contents ... ok +test allocation_drag::tests::oa_sa_state_owned_action_and_availability_reject_reassignment_atomically ... ok +test allocation_drag::tests::oa_sa_unfolding_prior_hidden_overlap_refuses_even_when_insertion_does_not_collide ... ok +test allocation_drag::tests::own_deleted_allocation_routes_may_disappear_in_every_diagram_only ... ok +test allocation_drag::tests::role_only_same_effective_performer_is_semantic_noop_and_outgoing_refuses ... ok +test allocation_drag::tests::sa_port_and_deferred_exchange_allocation_cascade_refuses_and_retarget_is_invalid ... ok +test allocation_drag::tests::same_performer_readability_preserves_snapped_noop_and_allocation_identity ... ok +test allocation_drag::tests::scope_detects_first_child_allocation_and_role_transfer_and_finish_rejects_live_edits ... ok +test allocation_drag::tests::selected_header_visibility_allows_viewport_edge_but_refuses_clipping ... ok +test allocation_drag::tests::snapped_noop_returns_no_command_and_keeps_source_revision_and_redo ... ok +test allocation_drag::tests::source_budget_refusal_keeps_project_bundle_history_and_retry_identity_exact ... ok +test allocation_drag::tests::surviving_constraint_mutation_is_refused_even_when_core_candidate_is_valid ... ok +test allocation_drag::tests::target_presentation_requires_accepted_identity_and_selected_header_visibility ... ok +test allocation_drag::tests::toolbar_identity_allows_exact_incoming_placement_at_old_label_overlap ... ok +test allocation_drag::tests::uniform_folded_grandchild_and_unplaced_scope_moves_exactly_q_and_all_l_oa_sa ... ok +test allocation_drag::tests::uniform_role_only_and_mixed_direct_role_composites_same_target_do_not_allocate ... ok +test allocation_drag::tests::uniformly_unassigned_composite_creates_only_stable_leaf_allocations_including_unplaced ... ok +test allocation_drag::tests::unrequested_view_option_cleanup_is_not_whitelisted ... ok +test allocation_drag::tests::unresolved_role_leaf_can_arrange_or_accept_explicit_target_without_guessing ... ok +test app::allocation_drag::tests::actual_canvas_origin_change_cancels_held_work_before_any_legacy_release ... ok +test app::allocation_drag::tests::arrange_is_one_gesture_and_snapped_noop_preserves_redo_and_source ... ok +test app::allocation_drag::tests::candidate_semantics_are_cached_per_destination_with_stable_ids_and_own_index ... ok +test app::allocation_drag::tests::destination_identity_does_not_describe_blocked_or_outside_viewport_as_unallocation ... ok +test app::allocation_drag::tests::frozen_collapsed_target_uses_only_visible_header_and_port_edge_controls_occlude ... ok +test app::allocation_drag::tests::frozen_targets_use_half_open_semantic_priority_and_refuse_incomparable_overlap ... ok +test app::allocation_drag::tests::full_tree::actual_app_tree_dirty_description_retains_focus_and_middle_caret_for_next_key ... ok +test app::allocation_drag::tests::full_tree::actual_app_tree_dirty_name_retains_focus_and_middle_caret_for_next_key ... ok +test app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable ... ok +test app::allocation_drag::tests::full_tree::actual_keyboard_arrange_shortcut_consumes_once_escape_cancels_and_dirty_owner_refuses ... ok +test app::allocation_drag::tests::full_tree::actual_rendered_canvas_pixels_do_not_change_when_toolbar_feedback_text_changes ... ok +test app::allocation_drag::tests::full_tree::actual_toolbar_hover_inspects_last_full_name_without_authorizing_an_outside_drop ... ok +test app::allocation_drag::tests::full_tree::control_focus::dirty_selected_pin_outer_ring_keeps_real_name_focus_and_caret ... ok +test app::allocation_drag::tests::group::allocation_bare_moves_cannot_bypass_armed_active_or_retired_lifetime ... ok +test app::allocation_drag::tests::group::completed_text_apply_rejects_old_allocation_packets_without_retiring_a_new_drag ... ok +test app::allocation_drag::tests::group::connection_lifetime::captured_connection_after_cancel_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::connection_lifetime::captured_connection_context_mismatches_preserve_the_current_session ... ok +test app::allocation_drag::tests::group::connection_lifetime::captured_connection_current_restart_and_pair_commit_after_tool_boundary ... ok +test app::allocation_drag::tests::group::group_arrange_work_and_performer_anchors_preserve_every_responsibility ... ok +test app::allocation_drag::tests::group::group_assignment_split_rebuild_preserves_primary_and_commits_one_complete_candidate ... ok +test app::allocation_drag::tests::group::group_out_and_back_assigns_at_zero_delta_then_true_noop_preserves_redo ... ok +test app::allocation_drag::tests::group::group_selection_aba_and_old_press_cannot_retire_a_new_token ... ok +test app::allocation_drag::tests::group::group_source_refusal_retains_primary_source_and_both_history_paths ... ok +test app::allocation_drag::tests::group::idle_group_press_rejects_selection_generation_aba_with_unchanged_other_stamps ... ok +test app::allocation_drag::tests::group::ordinary_off_grid_performer_out_and_back_is_noop_with_redo ... ok +test app::allocation_drag::tests::group::route_lifetime::captured_route_context_fields_independently_reject_before_retirement ... ok +test app::allocation_drag::tests::group::route_lifetime::current_route_commits_without_session_preserve_exact_route_history ... ok +test app::allocation_drag::tests::group::route_lifetime::same_context_route_attachment_after_selection_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::route_lifetime::same_context_route_commit_after_selection_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::route_lifetime::stale_route_attachment_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::route_lifetime::stale_route_commit_preserves_arrange_arm_and_live_group ... ok +test app::allocation_drag::tests::group::unsupported_group_click_collapses_but_threshold_crossing_never_becomes_click ... ok +test app::allocation_drag::tests::modal_roundtrip_equal_fit_undo_resize_and_focus_retire_press_before_replay ... ok +test app::allocation_drag::tests::mounted_clean_stationary_selects_exact_work_without_revision_or_legacy_apply ... ok +test app::allocation_drag::tests::mounted_dirty_port_press_cannot_fall_through_to_applying_port_selection ... ok +test app::allocation_drag::tests::mounted_dirty_property_press_does_not_select_apply_or_destroy_draft ... ok +test app::allocation_drag::tests::mounted_oa_sa_ordered_incoming_between_outgoing_are_exact_single_history_steps ... ok +test app::allocation_drag::tests::mounted_role_only_outgoing_refusal_retains_placement_and_same_performer_creates_no_allocation ... ok +test app::allocation_drag::tests::mounted_uniform_parent_moves_hidden_placements_and_assigns_only_leaves ... ok +test app::allocation_drag::tests::navigation_union::old_chooser_envelopes_preserve_a_current_canvas_gesture ... ok +test app::allocation_drag::tests::navigation_union::stale_gesture_packets_preserve_navigation_and_a_new_live_cancel_still_works ... ok +test app::allocation_drag::tests::oa_sa_clipped_selected_header_refuses_preview_release_and_retries_without_partial_source_or_history ... ok +test app::allocation_drag::tests::oa_sa_toolbar_identity_accepts_exact_receiver_and_collapsed_header_drag ... ok +test app::allocation_drag::tests::outside_release_is_cancel_and_does_not_remove_an_assignment ... ok +test app::allocation_drag::tests::pending_behavior_draft_refuses_actual_work_press_and_equal_document_replacement_retires_packet ... ok +test app::allocation_drag::tests::release_uses_ordered_native_position_before_later_motion_in_same_batch ... ok +test app::allocation_drag::tests::same_snapped_position_on_opposite_shared_border_rebuilds_semantics_even_if_layout_refuses ... ok +test app::allocation_drag::tests::source_and_modal_admission_reject_prebuilt_clean_press_without_selecting ... ok +test app::allocation_drag::tests::source_refusal_is_atomic_and_a_new_gesture_can_retry_against_live_revision ... ok +test app::allocation_drag::tests::stale_packets_do_not_cancel_a_newer_token_and_each_release_is_consumed_once ... ok +test app::allocation_drag::tests::toolbar_destination_names_transformed_target_whose_header_is_clipped ... ok +test app::allocation_drag::tests::toolbar_status_leaves_transformed_top_edge_work_header_readable ... ok +test app::context_help_tests::context_help_accepts_live_process_viewport_and_rejects_stale_measurements ... ok +test app::context_help_tests::context_help_barrier_retires_text_selection_drag_without_changing_the_caret ... ok +test app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch ... ok +test app::context_help_tests::context_help_escape_preserves_pending_behavior_form_and_blocks_submit ... ok +test app::context_help_tests::context_help_f1_selects_scenario_topic_without_leaving_the_workspace ... ok +test app::context_help_tests::context_help_preserves_group_property_draft_camera_and_model ... ok +test app::context_help_tests::context_help_rejects_a_reference_picker_open_queued_from_the_inspector ... ok +test app::context_help_tests::context_help_retains_source_draft_and_rejects_background_source_input ... ok +test app::context_help_tests::mounted_context_help_keyboard_scroll_preserves_inspector_focus_and_exact_caret ... ok +test app::context_help_tests::mounted_context_help_observes_modifier_release_before_plain_canvas_click ... ok +test app::context_help_tests::mounted_context_help_retires_held_pan_without_replaying_its_release ... ok +test guide::tests::filtering_and_related_navigation_keep_selection_visible ... ok +test guide::tests::guide_topic_navigation_resets_only_article_and_same_topic_search_keeps_scroll ... ok +test guide::tests::search_finds_concepts_in_walkthroughs_and_api_reference ... ok + +test result: ok. 125 passed; 0 failed; 0 ignored; 0 measured; 1421 filtered out; finished in 75.83s diff --git a/harness/experiments/compact-help-20260925/candidate-f830/01-allocation-normal.png b/harness/experiments/compact-help-20260925/candidate-f830/01-allocation-normal.png new file mode 100644 index 00000000..e03cdd25 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/01-allocation-normal.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/02-trace-normal.png b/harness/experiments/compact-help-20260925/candidate-f830/02-trace-normal.png new file mode 100644 index 00000000..bc2b08d1 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/02-trace-normal.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/03-help-normal.png b/harness/experiments/compact-help-20260925/candidate-f830/03-help-normal.png new file mode 100644 index 00000000..feefc943 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/03-help-normal.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/04-help-keyboard-no-scroll.png b/harness/experiments/compact-help-20260925/candidate-f830/04-help-keyboard-no-scroll.png new file mode 100644 index 00000000..47a25976 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/04-help-keyboard-no-scroll.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/05-help-minimum-resized.png b/harness/experiments/compact-help-20260925/candidate-f830/05-help-minimum-resized.png new file mode 100644 index 00000000..f04f5c98 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/05-help-minimum-resized.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/06-help-pointer-scroll.png b/harness/experiments/compact-help-20260925/candidate-f830/06-help-pointer-scroll.png new file mode 100644 index 00000000..b76dc33f Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/06-help-pointer-scroll.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/07-trace-minimum.png b/harness/experiments/compact-help-20260925/candidate-f830/07-trace-minimum.png new file mode 100644 index 00000000..c264fc4b Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/07-trace-minimum.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/08-property-draft.png b/harness/experiments/compact-help-20260925/candidate-f830/08-property-draft.png new file mode 100644 index 00000000..51259878 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/08-property-draft.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/09-property-focus-lost.png b/harness/experiments/compact-help-20260925/candidate-f830/09-property-focus-lost.png new file mode 100644 index 00000000..edca94ab Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/09-property-focus-lost.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/10-allocation-minimum.png b/harness/experiments/compact-help-20260925/candidate-f830/10-allocation-minimum.png new file mode 100644 index 00000000..e4946825 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/10-allocation-minimum.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/11-state-minimum.png b/harness/experiments/compact-help-20260925/candidate-f830/11-state-minimum.png new file mode 100644 index 00000000..69703c36 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/11-state-minimum.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/12-state-redo.png b/harness/experiments/compact-help-20260925/candidate-f830/12-state-redo.png new file mode 100644 index 00000000..12c3ac06 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/12-state-redo.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/13-process-minimum.png b/harness/experiments/compact-help-20260925/candidate-f830/13-process-minimum.png new file mode 100644 index 00000000..19fe7328 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/13-process-minimum.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/14-process-pending.png b/harness/experiments/compact-help-20260925/candidate-f830/14-process-pending.png new file mode 100644 index 00000000..85c61024 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/14-process-pending.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/15-process-pending-focus-lost.png b/harness/experiments/compact-help-20260925/candidate-f830/15-process-pending-focus-lost.png new file mode 100644 index 00000000..41993267 Binary files /dev/null and b/harness/experiments/compact-help-20260925/candidate-f830/15-process-pending-focus-lost.png differ diff --git a/harness/experiments/compact-help-20260925/candidate-f830/baseline-proof.json b/harness/experiments/compact-help-20260925/candidate-f830/baseline-proof.json new file mode 100644 index 00000000..a41c098f --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-f830/baseline-proof.json @@ -0,0 +1,49 @@ +{ + "baseline_binary": "2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399", + "baseline_source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "model_files": { + "evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f", + "oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c", + "sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230" + }, + "matching_files": 37, + "baseline_captures": { + "baseline-allocation-compact.png": "d92a0cca62a038dcf0894d92b37a64028342c2365e3fb8880ed597222123d96f", + "baseline-trace-compact.png": "b608a3d75612d8c06aacc094a7aebd12a0798ce30f2126c00bc3ad61a9103217", + "baseline-trace-normal.png": "6dfb6c595af4247aab3600da0e0a25ba4b11151436e9fc4a406f1036053f71d0" + } +} diff --git a/harness/experiments/compact-help-20260925/candidate-f830/build.json b/harness/experiments/compact-help-20260925/candidate-f830/build.json new file mode 100644 index 00000000..f01c8411 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-f830/build.json @@ -0,0 +1,6 @@ +{ + "runtime": "F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4", + "source": "f83068757af885572f6b3f932d07233dd1b94b7e", + "buildExit": 0, + "binary": "C1A9B196EC03E86F049FA2AAD2B86BFCAA3F0FBAE582A80EE39EE8ADF0758E3E" +} diff --git a/harness/experiments/compact-help-20260925/candidate-f830/build.log b/harness/experiments/compact-help-20260925/candidate-f830/build.log new file mode 100644 index 00000000..5ee12ffe --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-f830/build.log @@ -0,0 +1,2 @@ + Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) + Finished `dev` profile [unoptimized] target(s) in 1m 46s diff --git a/harness/experiments/compact-help-20260925/candidate-f830/geometry-tests.log b/harness/experiments/compact-help-20260925/candidate-f830/geometry-tests.log new file mode 100644 index 00000000..c3a368fc --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-f830/geometry-tests.log @@ -0,0 +1,26 @@ + +running 10 tests +test app::allocation_drag::tests::full_tree::actual_app_tree_dirty_description_retains_focus_and_middle_caret_for_next_key ... ok +test app::allocation_drag::tests::full_tree::actual_app_tree_dirty_name_retains_focus_and_middle_caret_for_next_key ... ok +test app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable ... FAILED +test app::allocation_drag::tests::full_tree::actual_keyboard_arrange_shortcut_consumes_once_escape_cancels_and_dirty_owner_refuses ... ok +test app::allocation_drag::tests::full_tree::actual_rendered_canvas_pixels_do_not_change_when_toolbar_feedback_text_changes ... ok +test app::allocation_drag::tests::full_tree::actual_toolbar_hover_inspects_last_full_name_without_authorizing_an_outside_drop ... ok +test app::allocation_drag::tests::full_tree::control_focus::dirty_selected_pin_outer_ring_keeps_real_name_focus_and_caret ... ok +test app::process_canvas::tests::direct_process_app_save_details_resize_and_passive_geometry_keep_drafts_and_camera ... ok +test app::state_diagram_tests::picker_escape::mounted_state_missing_picker_escape_preserves_exact_document_then_reopens_and_places ... ok +test app::state_multiselect_focus_tests::mounted_state_selection_and_missing_picker_never_resize_or_refit_the_canvas ... ok + +failures: + +---- app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable stdout ---- + +thread 'app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable' (880) panicked at crates\oa-desktop\src\app\allocation_drag_full_tree_tests.rs:308:5: +Rectangle { x: 274.0, y: 242.59999, width: 328.21484, height: 26.0 } +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + +failures: + app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable + +test result: FAILED. 9 passed; 1 failed; 0 ignored; 0 measured; 1532 filtered out; finished in 26.81s diff --git a/harness/experiments/compact-help-20260925/candidate-f830/review.md b/harness/experiments/compact-help-20260925/candidate-f830/review.md new file mode 100644 index 00000000..6ec3c5df --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-f830/review.md @@ -0,0 +1,27 @@ +# Independent native review: compact contextual Help + +Reviewed candidate source `f83068757af885572f6b3f932d07233dd1b94b7e`, executable SHA-256 `C1A9B196EC03E86F049FA2AAD2B86BFCAA3F0FBAE582A80EE39EE8ADF0758E3E`, runtime SHA-256 `F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4` (build.json). Review used Windows native Computer Use with the copied `model/project.arcadia`, normal 1440x900 and configured minimum 1100x700 client sizes (captured windows 1442x932 and 1102x732). Original examples and unrelated windows were not edited. This review belongs to this candidate, not a subsequently rebuilt executable. + +## Findings requiring correction + +1. **Help has no working keyboard reading route for overflow.** Open Architecture Help with F1. Press PageDown; the article does not move. Tab followed by PageDown does not move it. Clicking the article then PageDown also does not move it. Pointer wheel scrolling does work. Moved gesture instructions fall below the fold, so keyboard users cannot reach all the guidance. Evidence: `03-help-normal.png`, `04-help-keyboard-no-scroll.png`, `06-help-pointer-scroll.png`. Integration owner independently confirmed missing keyboard handling and is preparing a fix. +2. **Help dismissal loses draft input focus/caret continuation.** In minimum Traceability, click inspector Name, press Home, type `DRAFT `, press F1, Escape, then type `X` without clicking. The retained field remains `DRAFT 1...`, rather than becoming `DRAFT X1...`. Repeat with Process W -> empty canvas -> pending contribution name `Review draft` -> F1 -> Escape -> type `X`; text remains `Review draft`. Draft text is retained and no model mutation occurs, but typing cannot resume at the previous caret. Evidence: `08-property-draft.png`, `09-property-focus-lost.png`, `14-process-pending.png`, `15-process-pending-focus-lost.png`. + +## Additional observation + +State still draws a permanent generic instruction at `behavior/state_canvas.rs:1500`: "Select / move ...". At the minimum width it is truncated near "transition endpoin..." (`11-state-minimum.png`). Move this idle instruction to Help while preserving active tool/selection warnings. This is separate from the removed toolbar hint. + +## Verified workflows and layout + +- Opened only the isolated copied water-pressure source project. Initial launch helper timed out waiting for a targetable window; a fresh window enumeration found the normal application. A file-dialog accessibility set-value operation also timed out; re-observation showed no filename change, and ordinary pointer focus/text entry succeeded. These are recorded as tooling delays, not application defects. +- Switched OA Allocation to Traceability through View content. All trace actions remain visible. At normal size canvas top moved from baseline approximately y=417 to y=356; at minimum size from approximately y=470 to y=356. The same baseline fixture and panel state were used; this recovers approximately 61 and 114 vertical pixels respectively. Evidence: `02-trace-normal.png`, `07-trace-minimum.png`, baseline files under `../native/`. +- Minimum Allocation canvas starts around y=356 versus baseline y=414, recovering approximately 58 pixels. Destination and Arrange controls remain visible (`10-allocation-minimum.png`). Arrange arms visibly and Escape removes its armed button state. The historical operation-status text remains in the footer after cancellation; no claim of full status-lifecycle coverage is made. +- F1 and visible Help both open the overlay. Close and Escape dismiss it. Pointer article scrolling works. Resized the native window from normal to minimum while Help was open; header/Close and article remain reachable (`05-help-minimum-resized.png`). The underlying view remains selected after closing, and its camera updates to the smaller viewport. +- Property draft text survives Help, and Revert restores accepted name. Undo restored the temporary Traceability projection change and the application showed all changes saved. +- State and Process F1 select the correct States and Chains articles. Their compact selection rows and Help control are visible at minimum size (`11-state-minimum.png`, `13-process-minimum.png`). Created a State region, then exercised Undo/Redo/Undo; object and check counts returned to the fixture baseline (94 objects, 62 links, one check). Evidence: `12-state-redo.png`. +- Process W -> blank canvas opens a pending contribution form. Named draft survives Help. Disabled Create, source chooser explanation and Cancel remain visible at minimum size. Cancel returned to the existing Process without creating an object. +- Closed the reviewed application through Alt+F4 after restoring the clean model. No save was performed. + +## Remaining native coverage + +Do not infer multiselection, long-name group-control layout, source-editor caret preservation, operation-failure coexistence with active guidance, or full Scenario coverage from these observations. The supported Computer Use input API has no modifier-click or key-hold action; source inspection found Shift-click selection but no ordinary-diagram marquee implementation. Native group verification therefore remains a gap. Keyboard reading and property/behavior caret continuation must be rechecked on the successor candidate, together with any affected input behavior. Screenshots alone do not establish these interactions. diff --git a/harness/experiments/compact-help-20260925/candidate-f830/tests.log b/harness/experiments/compact-help-20260925/candidate-f830/tests.log new file mode 100644 index 00000000..197b1e47 --- /dev/null +++ b/harness/experiments/compact-help-20260925/candidate-f830/tests.log @@ -0,0 +1,35 @@ + Compiling oa-server v0.2.0 (C:\ar-compact-01a0d717\crates\oa-server) + Compiling iced_widget v0.14.2 (C:\ar-compact-01a0d717\crates\vendor\iced_widget) + Compiling oa-core v0.2.0 (C:\ar-compact-01a0d717\crates\oa-core) + Compiling iced v0.14.0 + Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop) + Finished `test` profile [unoptimized] target(s) in 20m 57s + Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-c5b42126ba36cd38.exe) + +running 10 tests +test app::context_help_tests::context_help_accepts_live_process_viewport_and_rejects_stale_measurements ... ok +test app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch ... FAILED +test app::context_help_tests::context_help_escape_preserves_pending_behavior_form_and_blocks_submit ... ok +test app::context_help_tests::context_help_f1_selects_scenario_topic_without_leaving_the_workspace ... ok +test app::context_help_tests::context_help_preserves_group_property_draft_camera_and_model ... ok +test app::context_help_tests::context_help_rejects_a_reference_picker_open_queued_from_the_inspector ... ok +test app::context_help_tests::context_help_retains_source_draft_and_rejects_background_source_input ... ok +test guide::tests::filtering_and_related_navigation_keep_selection_visible ... ok +test guide::tests::guide_topic_navigation_resets_only_article_and_same_topic_search_keeps_scroll ... ok +test guide::tests::search_finds_concepts_in_walkthroughs_and_api_reference ... ok + +failures: + +---- app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch stdout ---- + +thread 'app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch' (3680) panicked at crates\oa-desktop\src\app\context_help_tests.rs:225:5: +assertion failed: app.allocation_input_owner() +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + +failures: + app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch + +test result: FAILED. 9 passed; 1 failed; 0 ignored; 0 measured; 1532 filtered out; finished in 0.42s + +error: test failed, to rerun pass `-p oa-desktop --bin arcadia-studio` diff --git a/harness/experiments/compact-help-20260925/native/baseline-allocation-compact.png b/harness/experiments/compact-help-20260925/native/baseline-allocation-compact.png new file mode 100644 index 00000000..1e165bf1 Binary files /dev/null and b/harness/experiments/compact-help-20260925/native/baseline-allocation-compact.png differ diff --git a/harness/experiments/compact-help-20260925/native/baseline-trace-compact.png b/harness/experiments/compact-help-20260925/native/baseline-trace-compact.png new file mode 100644 index 00000000..a1c2f7d4 Binary files /dev/null and b/harness/experiments/compact-help-20260925/native/baseline-trace-compact.png differ diff --git a/harness/experiments/compact-help-20260925/native/baseline-trace-normal.png b/harness/experiments/compact-help-20260925/native/baseline-trace-normal.png new file mode 100644 index 00000000..31f6ee61 Binary files /dev/null and b/harness/experiments/compact-help-20260925/native/baseline-trace-normal.png differ diff --git a/harness/experiments/compact-help-20261001/.gitattributes b/harness/experiments/compact-help-20261001/.gitattributes new file mode 100644 index 00000000..4c0c7167 --- /dev/null +++ b/harness/experiments/compact-help-20261001/.gitattributes @@ -0,0 +1,5 @@ +*.json -text whitespace=cr-at-eol +*.http -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol +*.log -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol +*.arcadia -text whitespace=cr-at-eol +package/** -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol diff --git a/harness/experiments/compact-help-20261001/check-indexed-evidence.py b/harness/experiments/compact-help-20261001/check-indexed-evidence.py new file mode 100644 index 00000000..d89d1f10 --- /dev/null +++ b/harness/experiments/compact-help-20261001/check-indexed-evidence.py @@ -0,0 +1,15 @@ +from pathlib import Path +import hashlib, json, subprocess +root = Path(subprocess.check_output(['git','rev-parse','--show-toplevel'], text=True).strip()) +packet = root/'harness/experiments/compact-help-20261001/package' +inventory = json.loads((packet/'evidence-files.json').read_text(encoding='utf-8')) +prefix = packet.relative_to(root).as_posix() +assert {p.relative_to(packet).as_posix() for p in packet.rglob('*') if p.is_file()} == set(inventory)|{'evidence-files.json'} +for relative, expected in inventory.items(): + data = (packet/relative).read_bytes() + indexed = subprocess.check_output(['git','show',':'+prefix+'/'+relative], cwd=root) + actual = {'bytes':len(data),'sha256':hashlib.sha256(data).hexdigest()} + assert actual == expected, relative + assert indexed == data, 'Index changes captured bytes: '+relative +assert subprocess.check_output(['git','show',':'+prefix+'/evidence-files.json'],cwd=root) == (packet/'evidence-files.json').read_bytes() +print(json.dumps({'status':'PASS','captured_files':len(inventory),'indexed_inventory_identical':True,'policy':'All captured package bytes preserved by scoped -text attributes'},indent=2)) diff --git a/harness/experiments/compact-help-20261001/incremental-review.md b/harness/experiments/compact-help-20261001/incremental-review.md new file mode 100644 index 00000000..3d33fcfb --- /dev/null +++ b/harness/experiments/compact-help-20261001/incremental-review.md @@ -0,0 +1,13 @@ +# Incremental independent #39 evidence review + +No material blocker found in the added warning evidence or current release/checkpoint wording. This supplements the earlier final-evidence review, which covered the previous 133-entry packet; the current working-tree inventory has 140 entries, all independently rechecked against exact byte lengths and SHA256 with zero discrepancies. + +Reviewed the copied `read-model-warnings.py`, `model-warnings/{pristine,saved,result}.json` and logs, the existing complete model envelopes, the current release validation, packet README and top of STATE. No compiler, GUI, server launch, Gitea action or tracked-file edit was performed. This review file is the only new artifact. + +The added script performs GET validation requests for exactly the two resource IDs recorded by the prior complete-model oracle. Captured responses agree with result.json and show both models valid at revision 1 (separate imported resources). Pristine has only `work_without_behavior_context` for `4149a872-3440-59de-9879-8981e78d27ab`; saved retains that identical warning and adds exactly one warning: `trace_drift`, baseline field, `OaChanged`, trace `5309f955-53fd-5ff4-9c0a-91737e947341`. + +Independent full-model equality still holds after changing only Activity `61f7bbfb-74a4-5540-9182-2583dfb27a49` name from `Assess pressure alarm` to `Assess pressure alarm QA LEFT XYRIGHT`. The warned trace points to that activity. Its complete trace record and OA/SA review baseline remain identical; the OA baseline still says `Assess pressure alarm`. Thus the new warning is consistent with the existing trace_drift comparison in `crates/oa-core/src/transitions.rs`, not a silent baseline update or transition reconciliation. Both actual stored envelopes also remain identical to their earlier captured GET envelopes after the read-only validation run. + +The new README/release explanation accurately classifies one existing coverage warning plus expected OA name drift. It does not claim warning-free modeling. Current release validation and STATE do not assert that a new tag, release or assets are already published; historical published-release references remain distinct. Publication/readback acceptance and the separate #46 diagnostic correction remain outside this review. + +This review checks working-tree inventory bytes. The parent's scoped .gitattributes correction, restaging and indexed-blob/hash comparison are separate preservation gates and are not certified here. No snapshot byte normalization is authorized by this review. diff --git a/harness/experiments/compact-help-20261001/indexed-evidence-check.json b/harness/experiments/compact-help-20261001/indexed-evidence-check.json new file mode 100644 index 00000000..97548b66 --- /dev/null +++ b/harness/experiments/compact-help-20261001/indexed-evidence-check.json @@ -0,0 +1,8 @@ +{ + "status": "PASS", + "captured_files": 140, + "indexed_inventory_identical": true, + "policy": "All captured package bytes preserved by scoped -text attributes", + "command": "python harness/experiments/compact-help-20261001/check-indexed-evidence.py", + "scope": "The 140 inventory entries and evidence-files.json were compared to working-tree and indexed blobs before this documentation commit. This check does not establish native acceptance or publication." +} diff --git a/harness/experiments/compact-help-20261001/package/README.md b/harness/experiments/compact-help-20261001/package/README.md new file mode 100644 index 00000000..a5684560 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/README.md @@ -0,0 +1,41 @@ +# Fresh package verification + +This packet verifies the exact scoped Windows development-preview ZIP described +in [the release validation](../../../release-compact-help-validation-20261001.md). +Production gates and earlier native evidence remain separately versioned in +[the contribution record](../../../compact-help-validation-20261001.md). + +* [Independent artifact/server review](artifact-review.md): archive, provenance, + runtime/notices/docs, captured HTTP and restart scope, including the corrected + Unicode fixture. +* [First native session](native/review.md) and [fresh reopen](native-reopen/review.md): + actual Home/help/edit/caret/minimum/save/history/reopen operations, original + collision refusal and recovery, screenshots and explicit limits. +* `started.json`/`finished.json` in those native directories record system-only + PATH, unrelated cwd, executable/runtime hashes, exit 0 and empty logs. +* `native-source-existing-save.json` and `native-source-destination-*.json` + record the declared whole-file oracles. `saved-source/` preserves actual + changed source and relocated entry bytes; all other hashes refer to pristine + files distributed in the ZIP. Companion files were copied separately. +* `native-model-oracle/` retains requests/responses and result of parsing the + complete pristine and actual saved bundles using the exact packaged server. + Only the declared Activity name differs in the complete Project. Fresh + independent read-only reconciliation also verifies actual disk/source equality. +* `model-warnings/` records subsequent read-only validation: both models are + valid; the name edit adds the expected OA trace-drift warning to the existing + behavior-coverage warning. Transition reconciliation was not performed. +* `server-smoke/` preserves the first harness fixture encoding issue; + `server-smoke-unicode02/` retains its corrected U+2014/CRLF run. Each preserves + all 11 HTTP exchanges, source files, acknowledged envelope and process results. + Stores are not duplicated; captured envelopes and store hashes are retained. +* `extraction-check.json` covers all 565 extracted files; `package.json` and + `build-evidence.json` identify distinct source roles. Runtime/dependency notice + inventories and their full texts remain inside the actual ZIP. +* [Evidence file hashes](evidence-files.json) bind these exact copied bytes. + +Helpers are retained as executed, with their original absolute machine paths. +Adapt paths to a fresh extraction/working directory to repeat a workflow. Do not +overwrite prior attempts. Source checks and package reconstruction parameters +are in the release validation and `docs/windows-packaging.md`. These finite +checks do not establish complete OA/SA, general accessibility, Linux, power-loss +safety or application-managed copying of arbitrary external artifacts. diff --git a/harness/experiments/compact-help-20261001/package/artifact-review.md b/harness/experiments/compact-help-20261001/package/artifact-review.md new file mode 100644 index 00000000..ccbc33eb --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/artifact-review.md @@ -0,0 +1,41 @@ +# Independent compact Help package and server evidence review + +No blocking finding in the reviewed artifact integrity, provenance, notices, or bounded server evidence. This review does not accept the packaged desktop workflow or the complete first release. The reviewer performed read-only byte/JSON/PE checks and inspected existing runtime evidence; no compiler, application launch, GUI action or Gitea mutation was performed. This review file is the only reviewer-created artifact. + +## Exact package and integrity + +Reviewed `ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip`: 34,184,534 bytes, SHA256 `18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2`. + +Independent checks verified all 565 ZIP entries against extracted bytes, the exact extracted file set, 564 SHA256SUMS entries and all 559 package input hashes. Archive names have no absolute/traversal paths, backslash ambiguity, colon paths or case-insensitive duplicates. Package BuildEvidence equals the supplied evidence file. Independent PE parsing reproduces all three recorded import lists and finds no delay-import directory. Dynamic runtime behavior remains a separate check. + +Provenance correctly distinguishes desktop source `6e7c4ddaf0775198384a8c4882809ea8e14b2976`, reused server source `715036e132677dd2bc2fb37ed316d93dc9987aec`, and package documentation source `ea23e229260d7d050b3c3b88e77c3a851e936abe`. It identifies Rust 1.98.1, gnullvm and dev/unoptimized profile. Executable hashes match the recorded final desktop (`d55ecad4...`) and released server (`6cebacc1...`). The source comparison has no core, server, Cargo or vendor dependency changes; the documentation commit changes only acceptance evidence. These are checked provenance records, not an independent rebuild. + +## Runtime, notices and documentation + +The selected DLL is `f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4`, matching the final desktop runtime and the selected LLVM-MinGW 20260826 x86_64 toolchain. Its packaged distribution LICENSE matches that toolchain exactly. The component notice matches the reviewed manifest's DLL-bound entry and exact LLVM commit `ea7d852a70e8bdfaf601d6626a760f9771b2c4b4`; distribution build correspondence remains the stated external provenance limitation. + +All 489 referenced notice hashes pass. The 268 dependency package identities, registry checksums, features and local source-hash inventories agree with the accepted donor inventory except for intended `oa-desktop` source changes. Rust notice/target-library inventory is identical. Cargo.lock and all seven shared workspace-input hashes match the checkout. This is notice/inventory verification, not a universal license or binary asset audit. + +All 66 collected source documentation/example/deployment/license files match the checkout. The package document checker resolves all 18 local links. Built-in Help execution is outside this static check. + +## Fresh server pairing evidence + +The donor server's old packaged runtime was `aa282fa4...`; its historical runtime acceptance does not establish the new pairing. The fresh smoke pins the server and `f45604a1...` DLL, uses the newly extracted package, an unrelated working directory, a fresh store, loopback port 54695, and a system-only child PATH. Both process command lines point to this extracted server. + +The reviewer compared the adapted harness with the prior accepted harness and independently checked all 11 captured HTTP request/response pairs. The 23-check result is supported: readiness; exact packaged OpenAPI; source import and readback; stable model IDs distinct from resource identity; CRLF and comment preservation; a name-only complete-model change from revision 1 to 2; changed ETag; stale If-Match refusal with 412/revision_conflict; unchanged accepted model/source after refusal; exact committed envelope; and identical envelope, source, ETag and stored bytes after restart. The store hash is `62d1fed82f4fc793f3173beb8693fbde94d6aabf4e38e161da93b59178969ee2`. Logs contain only expected startup messages; stdout is empty. + +The first run contains a harness-only fixture encoding error: adaptation changed the old em dash comment to the literal mojibake text `—` (U+00E2, U+20AC, U+201D). Its exact current UTF-8 input/output comparison remains valid, but it did not exercise the intended em dash. The original run and its bytes remain preserved. + +The parent then ran `server-smoke-unicode02` with a fresh store and processes. Independent script comparison shows only the fixture comment changed to U+2014; runtime pins and behavioral assertions are unchanged. The reviewer independently reconciled this run's 11 captured HTTP exchanges, exact original/edited source bytes and CRLF, complete model delta, revision 1 to 2, ETags, 412 refusal, stored envelope and exact restart readback. All checks agree with its 23-check PASS result. The corrected source contains exactly one non-ASCII codepoint, U+2014. The new resource is `53a28b61-1736-4bc4-8553-28995488647f`; its revision-1 and revision-2 ETags match that resource. The package ZIP remains unchanged. + +| Evidence | First run (`server-smoke`) | Corrected run (`server-smoke-unicode02`) | +| --- | --- | --- | +| `run.py` SHA256 | `41d25f1d63b32737859674f414470c06868948db60f29a63eb5ac6b6857addb3` | `20344608a0623584a0e0ac66dc7f435a0de053d39b4254e92f1c1148aed8e8b9` | +| `original.arcadia` SHA256 | `c40896187097d97830b807e993aff39a93b62a1824abc46760c3b487767fa3f5` | `1f6b88cbcc3ac12995192feca91e07b9f6d536f2d21d0df6f42aa08f5c745ba9` | +| Committed store SHA256 | `62d1fed82f4fc793f3173beb8693fbde94d6aabf4e38e161da93b59178969ee2` | `f615fd9d08ed4e0bb4f2b7b13fa52095959e34c73ac3498487a8544d23eb13fb` | + +Each run's two owned server processes were stopped with Windows TerminateProcess after acknowledged requests, producing exit code 1. This supports restart persistence of acknowledged writes, not graceful shutdown, in-flight-write recovery or power-loss safety. Authentication, remote/TLS behavior, concurrency/load and wider API semantics were not exercised. + +## Acceptance boundary + +Fresh packaged desktop edit/save/undo/redo/reopen and contextual Help checks remain owned by the native reviewer. Publish their actual results separately. Retain development-preview limitations, the distinction between final focused checks and inherited full-suite evidence, and the outstanding complete-project requirements. Existing published assets remain unchanged. diff --git a/harness/experiments/compact-help-20261001/package/build-evidence.json b/harness/experiments/compact-help-20261001/package/build-evidence.json new file mode 100644 index 00000000..7a6415e0 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/build-evidence.json @@ -0,0 +1,58 @@ +{ + "source_identity": "Desktop: 6e7c4ddaf0775198384a8c4882809ea8e14b2976; unchanged reused server: 715036e132677dd2bc2fb37ed316d93dc9987aec; package documentation: ea23e229260d7d050b3c3b88e77c3a851e936abe", + "profile": "dev, unoptimized, debug assertions enabled", + "compiler": "rustc 1.98.1 (48a229cea 2026-09-01)", + "target": "x86_64-pc-windows-gnullvm", + "binary_sha256": { + "arcadia-studio.exe": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237" + }, + "binary_origins": { + "arcadia-studio.exe": { + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "build_command": "cargo build --locked -p oa-desktop --bin arcadia-studio", + "evidence": "harness/experiments/compact-help-20260925/candidate-6e7c/build.log", + "native_evidence": "harness/compact-help-validation-20261001.md" + }, + "arcadia-server.exe": { + "source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "reuse": true, + "release": "v0.2.0-preview.integrated.20260924", + "original_build_evidence": { + "source_identity": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "profile": "dev", + "target": "x86_64-pc-windows-gnullvm", + "compiler": "rustc 1.98.1 (48a229cea 2026-09-01)", + "binary_sha256": { + "arcadia-studio.exe": "2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237" + }, + "mandatory_gate": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\summary.json", + "bytes": 10594, + "sha256": "8b655c429b4abdeec0476a8397565fcd07682642f1d7b87e9a0c4eec63e22fc9" + }, + "source_manifest": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\inputs-before.json", + "bytes": 1740725, + "sha256": "38e4f7d37b67b06b7991d48560c5bd56ec5893909f3cffd224442d15bdc35f88" + }, + "environment": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\environment.json", + "bytes": 8981, + "sha256": "d9d89bc52a9312044e277f92b1585350fc86d5cc963dd91a39c669bc6ca2f39f" + }, + "artifact_relocation": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\artifact-relocation.json", + "bytes": 6181, + "sha256": "3298225b9890aab1a8029a4d6dff42a8162f8d77f2c71bcdd379d25ebcb1f9d6" + }, + "scope": "Exact preserved CargoJSON-identified individual product builds from final04; supplemental combined build is separately recorded. Native/package acceptance is separate." + }, + "unchanged_input_check": "git diff --exit-code 715036e132677dd2bc2fb37ed316d93dc9987aec ea23e229260d7d050b3c3b88e77c3a851e936abe -- crates/oa-core crates/oa-server Cargo.toml Cargo.lock" + } + }, + "package_documentation_source": "ea23e229260d7d050b3c3b88e77c3a851e936abe", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "acceptance_scope": "Contribution gates and prior released-server evidence are separate from fresh packaged desktop/server checks; this is an unfinished Windows development preview, not complete OA/SA acceptance." +} diff --git a/harness/experiments/compact-help-20261001/package/check-saved-destination.py b/harness/experiments/compact-help-20261001/package/check-saved-destination.py new file mode 100644 index 00000000..0ffabcdb --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/check-saved-destination.py @@ -0,0 +1,18 @@ +from pathlib import Path +import hashlib, json, sys +root = Path(__file__).resolve().parent +bundle = Path(json.loads((root/'extraction-check.json').read_text(encoding='utf-8'))['bundle']) +before = bundle/'examples/release1' +after = root/'working/saved' +expected = {p.relative_to(before).as_posix():p.read_bytes() for p in before.rglob('*') if p.is_file()} +name='oa/activities/activity_oa_restore_work.arcadia' +needle=b'oa_activity oa_assess "Assess pressure alarm" id "61f7bbfb-74a4-5540-9182-2583dfb27a49"' +assert expected[name].count(needle)==1 +expected[name]=expected[name].replace(needle,needle.replace(b'"Assess pressure alarm"',b'"Assess pressure alarm QA LEFT XYRIGHT"')) +expected['qa-saved.arcadia']=expected.pop('project.arcadia') +actual={p.relative_to(after).as_posix():p.read_bytes() for p in after.rglob('*') if p.is_file()} +diff=[p for p in sorted(set(expected)|set(actual)) if expected.get(p)!=actual.get(p)] +report={'status':'PASS' if not diff else 'FAIL', 'files':len(actual), 'source_files':sum(p.endswith('.arcadia') for p in actual), 'oracle':'Complete pristine37-file project with entry relocated to qa-saved.arcadia and exactlyone declared Activity-name literal; seven non-source companions separately copied before SaveAs,30 sourcefiles written by application.', 'differences':diff, 'sha256':{p:hashlib.sha256(v).hexdigest() for p,v in actual.items()}} +with (root/('native-source-destination-'+sys.argv[1]+'.json')).open('x',encoding='utf-8') as f: json.dump(report,f,indent=2) +print(json.dumps({k:v for k,v in report.items() if k!='sha256'},indent=2)) +assert not diff, diff diff --git a/harness/experiments/compact-help-20261001/package/evidence-files.json b/harness/experiments/compact-help-20261001/package/evidence-files.json new file mode 100644 index 00000000..2695e6aa --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/evidence-files.json @@ -0,0 +1,562 @@ +{ + "artifact-review.md": { + "bytes": 6484, + "sha256": "f76c089c5dd90785627b4fb73f5fa167b4cf6084aa3e163bb8f8f383f1e7129c" + }, + "build-evidence.json": { + "bytes": 3570, + "sha256": "3b278a3401b9a4c2de0538d70f603c3c039b308d5d2952ebed792efcac3e08e5" + }, + "check-saved-destination.py": { + "bytes": 1595, + "sha256": "fec0e28fb2e9b45d5de408c5cba5b8600f58d07baec5545ee96e0c73b880f5be" + }, + "extract-check.py": { + "bytes": 1453, + "sha256": "53399ab54b12b11d5057d0e19d044b242094be31adc8362321b2adace4704182" + }, + "extraction-check.json": { + "bytes": 73193, + "sha256": "2de063bcee74e2ffd7e70dbba717f4615932a2f0f3024a90e87406f17ab12244" + }, + "final-evidence-review.md": { + "bytes": 3287, + "sha256": "cd86306f43c8337c087601c8248acc7c13de959bf974d9b3da61ce725d146c0a" + }, + "graphics-environment.json": { + "bytes": 95, + "sha256": "1a96358d1bc719c4bcbb4d61f09414d83d6f26aaa2319c84ce270c0c8510b8b6" + }, + "launch-native-reopen.py": { + "bytes": 1957, + "sha256": "1917b02f25315c4be06b23b486263098314173cb956f1cb3a3b70d9e3813cffc" + }, + "launch-native.py": { + "bytes": 2288, + "sha256": "551b15c6a9fa48867d17f3080ae0a52e21290530fea403890b4cfafe1a627ca4" + }, + "native-model-oracle.py": { + "bytes": 3894, + "sha256": "a7c3007becaba4eedb1507e58b33143163cd3e9a4892c8d2e8a16fccff493cae" + }, + "native-source-destination-initial.json": { + "bytes": 4373, + "sha256": "e54ea36ebf4c22e169a91f10acb4cf82058c37882f7aa431d84f14ff0c228709" + }, + "native-source-destination-reopen.json": { + "bytes": 4373, + "sha256": "e54ea36ebf4c22e169a91f10acb4cf82058c37882f7aa431d84f14ff0c228709" + }, + "native-source-existing-save.json": { + "bytes": 4261, + "sha256": "b731d9e3dd24cafa0e1120ecc9eba4f308333d40ff03ec9cd5dc0d0974667cb6" + }, + "package.json": { + "bytes": 78341, + "sha256": "36bcff8a760c08674f3fc017bb5affc8a5f4f39174ac9d5a29298f2423155832" + }, + "packaging.log": { + "bytes": 427, + "sha256": "e4c27a29f3f09239691242290fb491c80b65d743be7ce7aa24e203a0086152dd" + }, + "read-model-warnings.py": { + "bytes": 1847, + "sha256": "3cd673212995a89ba72aeea2ca97cef08f3d58be0b895dcae009ef27bd4f6acb" + }, + "README.md": { + "bytes": 2876, + "sha256": "1932762f007d0da37c8b3521c0ae301c62d817a745ece29b06dd1c5f1fc4f19b" + }, + "windows-environment.json": { + "bytes": 133, + "sha256": "9adf19bddb99b0a30a42f6e13b47c21bbbe083ed31ddd3760acf2b9411e13546" + }, + "model-warnings/pristine.json": { + "bytes": 276, + "sha256": "763972bac5b1e0e094321fbaf2ad6c52f91d33e4a4de341674863bc932ddee10" + }, + "model-warnings/result.json": { + "bytes": 1805, + "sha256": "5c59af1af38acb9a675f5673c7fdc61eead6b5dd870c7bc0b5e6252690abfe7f" + }, + "model-warnings/saved.json": { + "bytes": 498, + "sha256": "369a1f7a983b397c47c23294136dfa05a10723397d5be38d2917174111e7fde1" + }, + "model-warnings/stderr.log": { + "bytes": 122, + "sha256": "c973e78913b952a8feb536d57ada913ec6b2305666394b3245f56d0a89f0ac64" + }, + "model-warnings/stdout.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "native/01-package-home.png": { + "bytes": 117323, + "sha256": "9c23b3474cf1249d20b06829827a6c169fc0c5fb2dad2c913fd7bc332c94d8df" + }, + "native/02-bundled-walkthrough.png": { + "bytes": 141845, + "sha256": "d54ffa47f509f7410f4c01fe330519fc7a593968034b80ee4884e4bb7ae36a09" + }, + "native/03-bundled-offline-help.png": { + "bytes": 197540, + "sha256": "a6b476a040f7561095158b216ee84f1469fe79a321211c20f10d324c7a0bb417" + }, + "native/04-working-minimum.png": { + "bytes": 110401, + "sha256": "a622d6cc7f6d597a902eb391eed66b084d12f591cd475cf7d866576262b4ff2c" + }, + "native/05-minimum-help-keyboard.png": { + "bytes": 147058, + "sha256": "3d2eb74ddb0a07618569c6207245ab9e7c67af93511bb01db172b4bffc2c4dcd" + }, + "native/06-exact-draft-left-xyright.png": { + "bytes": 102437, + "sha256": "ba04a51628b6fca5d1fd64881b8c56b3982dc5b40da40799d017381ea8cc263c" + }, + "native/07-qa-rename-applied.png": { + "bytes": 104209, + "sha256": "0e179a0c7b1a772330d958cf17d5de0120825b8941ba925864b9456bbb05a226" + }, + "native/08-save-as-path.png": { + "bytes": 67205, + "sha256": "c7e85bc22e90d74d656fb6a5655ee9e45075f2acdbfa5109a4a764c80be404ad" + }, + "native/09-save-as-unexpected-external-change.png": { + "bytes": 106673, + "sha256": "95d14fdde47c8ca341e6e78c1238572abcd973cb90274cf7d2806222e1a0f58b" + }, + "native/10-save-existing-project-success.png": { + "bytes": 103843, + "sha256": "f7d24e57ba1923d60c8d62705a97e27bcf8f67a2e446fe55335c8f6840f06a92" + }, + "native/11-undo-original-unsaved.png": { + "bytes": 103153, + "sha256": "ef8701270cb33e0a46d8f571e54c2f112ca736e8080bc1809e0fb93e791cdddf" + }, + "native/12-redo-renamed-saved.png": { + "bytes": 104103, + "sha256": "de57390746da695ede2f09459b5013cdd1096cbd3468bbd68318730598fc0bb4" + }, + "native/13-save-after-redo.png": { + "bytes": 103955, + "sha256": "8b52efae73d8484a75f446b54283db37bb16a424a86dc74a45b832aebfa7bfa6" + }, + "native/14-fresh-save-as-path.png": { + "bytes": 67020, + "sha256": "f342f3b2aaad16fce04ed77fec04f2af01170b7ab23f77b030a1a4e8100e8df6" + }, + "native/15-fresh-save-as-success.png": { + "bytes": 104098, + "sha256": "a33f18489f049fcebf521e1071558efccb5bdb31094db88145ccca40529bc348" + }, + "native/baseline.json": { + "bytes": 3960, + "sha256": "3be898f41d6692d6538ea771b3e2533bc5dd12300cd48e61368dfa62fa843b07" + }, + "native/finished.json": { + "bytes": 855, + "sha256": "126e45d0832a532fbfc8ec29679c3157f3916d24a590099886883daa27354628" + }, + "native/review.md": { + "bytes": 6995, + "sha256": "8eaf19212153338e954b1970b978f2fa1a368db5caf072ced67083e87c553a9c" + }, + "native/started.json": { + "bytes": 705, + "sha256": "fea81d1cdd8475aa531f5a2c634d0368a69ac97238c390ff84ada1b12c670b85" + }, + "native/stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "native/stdout.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "native-model-oracle/01.request.json": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "native-model-oracle/01.response.json": { + "bytes": 15, + "sha256": "a29ee2b15c494311c52521766e44af56a3ad2248e7a8ab465e5206463c13d288" + }, + "native-model-oracle/02.request.json": { + "bytes": 73418, + "sha256": "b82d1eb074d86d60e44651d17f659af7202fadf65bb961ecb0a57535af876b5a" + }, + "native-model-oracle/02.response.json": { + "bytes": 245, + "sha256": "28f6def33199309654724c1dd75f4a7c1b3bbbe4e8a02f016a172418357c61a9" + }, + "native-model-oracle/03.request.json": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "native-model-oracle/03.response.json": { + "bytes": 164079, + "sha256": "f6d9eb934064ab1bdd2135a85982be0b4367a74ac2943f0dcf5dbf02023816e1" + }, + "native-model-oracle/04.request.json": { + "bytes": 73436, + "sha256": "ea27de70d45ee592ce37ba315e18884e252e540af0731b0106dbe3bc48784de0" + }, + "native-model-oracle/04.response.json": { + "bytes": 245, + "sha256": "79a6f31fabe5aa7bcb9dbf79046a967f1de8fbabcb86b2bfeb6a366f7c13df7f" + }, + "native-model-oracle/05.request.json": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "native-model-oracle/05.response.json": { + "bytes": 164113, + "sha256": "1c0780522bb638cef226c97235c072e47be2aba2a37929f627ffbcda297593cd" + }, + "native-model-oracle/result.json": { + "bytes": 1139, + "sha256": "46b8fb4a5696fb523342d8b705e2aa1f26f545ebdaf580094b5b2a82fcbf79ee" + }, + "native-model-oracle/stderr.log": { + "bytes": 122, + "sha256": "9cd9490761f6fabe3ff41d81abe44dfe4e3b8c835372b6cc8596497b7363ab72" + }, + "native-model-oracle/stdout.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "native-reopen/01-reopen-exact-path.png": { + "bytes": 73428, + "sha256": "a3b79794c1621032652e2ced9973bf52c95f57dea8d531ffe11d1fcf3adaf261" + }, + "native-reopen/02-reopened-exact-name-properties.png": { + "bytes": 141025, + "sha256": "2aea0a42d54b529b5f6d1ea1d7df1659b6f3824d3567cb01c52a4d472d9b6bbc" + }, + "native-reopen/03-reopened-help.png": { + "bytes": 193670, + "sha256": "8ce13ea7bf4af86136d98d77e4294bf984d33901dea06eb8a9f785bec5d3433d" + }, + "native-reopen/04-reopened-no-change-save.png": { + "bytes": 139742, + "sha256": "b3b550c7ad0937bf99c1a269d1bf0021d71588731fe0407c3439d210c85cfdce" + }, + "native-reopen/finished.json": { + "bytes": 855, + "sha256": "979e38ad7e5a96fa82cca64b35a567fc85de695264ac633bb8b0443eefaac9a9" + }, + "native-reopen/review.md": { + "bytes": 2668, + "sha256": "9a90bd3819150695d3a412cc426cf4123da9fa5b01b0b5c49a9b6bfcef44c352" + }, + "native-reopen/started.json": { + "bytes": 705, + "sha256": "376c25fdf50d8e51d4d906650a5c8e361729ca004b0ad0c2b8d02e575c51e5db" + }, + "native-reopen/stderr.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "native-reopen/stdout.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "saved-source/qa-saved.arcadia": { + "bytes": 1958, + "sha256": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda" + }, + "server-smoke/01.request.http": { + "bytes": 72, + "sha256": "d178bdd2c015230bb3c464f4f2c40f0332aebd3a1836d1b30c3575a666927ed6" + }, + "server-smoke/01.response.http": { + "bytes": 219, + "sha256": "c9837f66841693496fe43245a001510a6db38db9b42ed5a0ba497f1010b47841" + }, + "server-smoke/02.request.http": { + "bytes": 79, + "sha256": "dbafc7aef09e87f06586df41c4c9f9c9e98bfafe2faf5445e0886471067930b6" + }, + "server-smoke/02.response.http": { + "bytes": 349010, + "sha256": "e3907515ac91e9083a1252e1ee6c9089693ca43eaa1f2415bf52cb3207cf9427" + }, + "server-smoke/03.request.http": { + "bytes": 479, + "sha256": "6ba9b5f15b32786dc8eca23bac0d85a90c23267d7576f770637aff5c2ace72b9" + }, + "server-smoke/03.response.http": { + "bytes": 535, + "sha256": "f59203c43f1e837b734d3f922b327ce4d24cecf58ed19c21d6dce81554d0538a" + }, + "server-smoke/04.request.http": { + "bytes": 112, + "sha256": "51d2e62c3de3198b40fa674942f07921403e4cbe89546b6eb4e20229050cb250" + }, + "server-smoke/04.response.http": { + "bytes": 1075, + "sha256": "0ceb40c589e88258948e6e01ec09b1413c789f05178b568e9a00ccbafe747eea" + }, + "server-smoke/05.request.http": { + "bytes": 127, + "sha256": "a85dc8166e419ffb881812a48d538de5f44e4966915de275233e9ae8dddebcf6" + }, + "server-smoke/05.response.http": { + "bytes": 584, + "sha256": "d4a774e147a81c9b50fc010b37eb2d7ffbc712f196757fd38d24feae05f91ef4" + }, + "server-smoke/06.request.http": { + "bytes": 561, + "sha256": "b8559c9d057ac3bbd89ff31825edd912cb838e816542ba5d511ce42813ca33f7" + }, + "server-smoke/06.response.http": { + "bytes": 1224, + "sha256": "43da1d02bcdd7f8405ef27250209548406de1fef3556ed9b60d545baa2d0bc69" + }, + "server-smoke/07.request.http": { + "bytes": 566, + "sha256": "29c3b3e2a29542ec5b31ff3a3dbde889333b99ba1faa6e119844687cc31e89ee" + }, + "server-smoke/07.response.http": { + "bytes": 450, + "sha256": "6f4491155694d2e354c4bb4d00652619b0a2b12cc450773a86be5dfcd558633e" + }, + "server-smoke/08.request.http": { + "bytes": 112, + "sha256": "51d2e62c3de3198b40fa674942f07921403e4cbe89546b6eb4e20229050cb250" + }, + "server-smoke/08.response.http": { + "bytes": 1071, + "sha256": "e17a54771e198300c9b0bc641f4f866414425f872df3707ee67bc00dcbe53c2d" + }, + "server-smoke/09.request.http": { + "bytes": 72, + "sha256": "d178bdd2c015230bb3c464f4f2c40f0332aebd3a1836d1b30c3575a666927ed6" + }, + "server-smoke/09.response.http": { + "bytes": 219, + "sha256": "96bd3e4e429a6e4213f2197ef5a287eee0104f62d1c74e3df4a89200076f1a1a" + }, + "server-smoke/10.request.http": { + "bytes": 112, + "sha256": "51d2e62c3de3198b40fa674942f07921403e4cbe89546b6eb4e20229050cb250" + }, + "server-smoke/10.response.http": { + "bytes": 1071, + "sha256": "f4be9314bc570fa4381fdea263d80cd873c426e768ceef72d252c90a03c3fb81" + }, + "server-smoke/11.request.http": { + "bytes": 127, + "sha256": "a85dc8166e419ffb881812a48d538de5f44e4966915de275233e9ae8dddebcf6" + }, + "server-smoke/11.response.http": { + "bytes": 582, + "sha256": "5f0836381a9a8e4835df8e6ac78e863c5058a80445062de949b2ba8e49463fad" + }, + "server-smoke/accepted-envelope.json": { + "bytes": 1056, + "sha256": "b759db49fc9a05a1fec29182f07ec0fe3d22ce8fe3e9b808f97c58738a8affbf" + }, + "server-smoke/edited.arcadia": { + "bytes": 254, + "sha256": "fe9b95bc5171dbfc018ccbad26a82d24a65df6554bfdf03f3f634ff5b8b0d267" + }, + "server-smoke/first.stderr.log": { + "bytes": 115, + "sha256": "75300bf24bdfebe3393f4bfbe910423ce1b67ed8b9d53874c30fa2b8af6a4326" + }, + "server-smoke/first.stdout.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "server-smoke/help.stderr.txt": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "server-smoke/help.stdout.txt": { + "bytes": 350, + "sha256": "99c5cb07d451c6da829b835b66fce92ce5c2529508c8053030123df704d0610e" + }, + "server-smoke/original.arcadia": { + "bytes": 256, + "sha256": "c40896187097d97830b807e993aff39a93b62a1824abc46760c3b487767fa3f5" + }, + "server-smoke/package-provenance.json": { + "bytes": 78340, + "sha256": "22bd0d7bc5c5b3d31b48e87d252e75b16a44c057b17a68a7c64ca52b47ef16e3" + }, + "server-smoke/restart.stderr.log": { + "bytes": 115, + "sha256": "75300bf24bdfebe3393f4bfbe910423ce1b67ed8b9d53874c30fa2b8af6a4326" + }, + "server-smoke/restart.stdout.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "server-smoke/result.json": { + "bytes": 4620, + "sha256": "b3678a31f08776f131c1e6f0e1fbdb97c30918e1a0e0620cd23ae2c75fb2bac0" + }, + "server-smoke/run.py": { + "bytes": 9050, + "sha256": "41d25f1d63b32737859674f414470c06868948db60f29a63eb5ac6b6857addb3" + }, + "server-smoke/version.stderr.txt": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "server-smoke/version.stdout.txt": { + "bytes": 21, + "sha256": "af82a1126f98794babaa173139764cadbfb5143a235f9a887ef70d18d00a0d91" + }, + "server-smoke-unicode02/01.request.http": { + "bytes": 72, + "sha256": "9889799d3c78a1c2c8761714fcdb086fea1574580ba501ba5e59435408fb3a8c" + }, + "server-smoke-unicode02/01.response.http": { + "bytes": 219, + "sha256": "f8b3f06d619ef978d0004c8bdc6f92c41c1aeb8be5b4199db1f3a418d207e182" + }, + "server-smoke-unicode02/02.request.http": { + "bytes": 79, + "sha256": "8e10577e77b978b143209fc185f83d0f19f7185475883094e9e32784fdc96544" + }, + "server-smoke-unicode02/02.response.http": { + "bytes": 349010, + "sha256": "8cb865488944b5eae7cf223abdc384609bdc63f2534dffb455e17bdc5e0e9075" + }, + "server-smoke-unicode02/03.request.http": { + "bytes": 474, + "sha256": "02d64c95a818d10f077e3d68bdefe8eaa0a2196e906de97c41844d37229a4232" + }, + "server-smoke-unicode02/03.response.http": { + "bytes": 535, + "sha256": "8c3dd51bb7a0b63f7e7aabd4f826805575e5b5b59c8f5685768f22452ddbc0d9" + }, + "server-smoke-unicode02/04.request.http": { + "bytes": 112, + "sha256": "459d1577ff58f571a7293b1633482219c386bb3148452cdadb9adbf83c327ca6" + }, + "server-smoke-unicode02/04.response.http": { + "bytes": 1070, + "sha256": "cfb0007987cbb4aa45e4fb361b3342e94dda771130d7dfbcd3025ac174764bf0" + }, + "server-smoke-unicode02/05.request.http": { + "bytes": 127, + "sha256": "2a8753e21da74c0881d33aa5c39ce3f46d67f48a2fb14a27a251f162a3a1008c" + }, + "server-smoke-unicode02/05.response.http": { + "bytes": 579, + "sha256": "c63db6bae24c2930650701ae8cab13efa085a12a372be707efdf776dd2422c20" + }, + "server-smoke-unicode02/06.request.http": { + "bytes": 556, + "sha256": "06bfc2c585be313cf79985a38cb761ba66344b031cecc5e5231fddca06eacf52" + }, + "server-smoke-unicode02/06.response.http": { + "bytes": 1219, + "sha256": "a3d1a29ce25e2cd5b97d485fe61aa0199db810c3e38ad6369bfb27e38e2987d3" + }, + "server-smoke-unicode02/07.request.http": { + "bytes": 561, + "sha256": "625b07333f1fae8ebbba716b90dd8b94a9d83e635acc0e91c7e5aeff9e1e8a96" + }, + "server-smoke-unicode02/07.response.http": { + "bytes": 450, + "sha256": "fd1ce539aac069050046d05a47326a3301859b291473320d811f3570a6b71629" + }, + "server-smoke-unicode02/08.request.http": { + "bytes": 112, + "sha256": "459d1577ff58f571a7293b1633482219c386bb3148452cdadb9adbf83c327ca6" + }, + "server-smoke-unicode02/08.response.http": { + "bytes": 1066, + "sha256": "e46cb3c72dac4f265b3057c47db15c9fd7f31cadff4b44dc894054775956cfdd" + }, + "server-smoke-unicode02/09.request.http": { + "bytes": 72, + "sha256": "9889799d3c78a1c2c8761714fcdb086fea1574580ba501ba5e59435408fb3a8c" + }, + "server-smoke-unicode02/09.response.http": { + "bytes": 219, + "sha256": "27d4e74daec79075c740012c96d87207d06be75c0c734864fb9aeea9e8558ad4" + }, + "server-smoke-unicode02/10.request.http": { + "bytes": 112, + "sha256": "459d1577ff58f571a7293b1633482219c386bb3148452cdadb9adbf83c327ca6" + }, + "server-smoke-unicode02/10.response.http": { + "bytes": 1066, + "sha256": "563bf6f460fb462e2a034b13485531e0475027947162ac22d1c10d39d82ac4f5" + }, + "server-smoke-unicode02/11.request.http": { + "bytes": 127, + "sha256": "2a8753e21da74c0881d33aa5c39ce3f46d67f48a2fb14a27a251f162a3a1008c" + }, + "server-smoke-unicode02/11.response.http": { + "bytes": 577, + "sha256": "5ab73722cc5199465aef08b1e364b744bbd2f3545d522c989a10807a9a552da4" + }, + "server-smoke-unicode02/accepted-envelope.json": { + "bytes": 1051, + "sha256": "aaf8226a9201861d4aa31fe074e85b5f61887f2494154d72804bc4ffd0cbb265" + }, + "server-smoke-unicode02/edited.arcadia": { + "bytes": 249, + "sha256": "e59acb5ed01e55057096b22a39667b40ddddb97227395d04c281686a73c6a14c" + }, + "server-smoke-unicode02/first.stderr.log": { + "bytes": 125, + "sha256": "5274d3b78e630e5bcff94b78918123440c150ba62f4cea555cf74bfb151a52c6" + }, + "server-smoke-unicode02/first.stdout.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "server-smoke-unicode02/help.stderr.txt": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "server-smoke-unicode02/help.stdout.txt": { + "bytes": 350, + "sha256": "99c5cb07d451c6da829b835b66fce92ce5c2529508c8053030123df704d0610e" + }, + "server-smoke-unicode02/original.arcadia": { + "bytes": 251, + "sha256": "1f6b88cbcc3ac12995192feca91e07b9f6d536f2d21d0df6f42aa08f5c745ba9" + }, + "server-smoke-unicode02/package-provenance.json": { + "bytes": 78340, + "sha256": "22bd0d7bc5c5b3d31b48e87d252e75b16a44c057b17a68a7c64ca52b47ef16e3" + }, + "server-smoke-unicode02/restart.stderr.log": { + "bytes": 125, + "sha256": "5274d3b78e630e5bcff94b78918123440c150ba62f4cea555cf74bfb151a52c6" + }, + "server-smoke-unicode02/restart.stdout.log": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "server-smoke-unicode02/result.json": { + "bytes": 4641, + "sha256": "f72d00454f1e3d7051b6158447860b00538a9ca4c2812ab2c8e5ce54a00b4b1a" + }, + "server-smoke-unicode02/run.py": { + "bytes": 9045, + "sha256": "20344608a0623584a0e0ac66dc7f435a0de053d39b4254e92f1c1148aed8e8b9" + }, + "server-smoke-unicode02/version.stderr.txt": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "server-smoke-unicode02/version.stdout.txt": { + "bytes": 21, + "sha256": "af82a1126f98794babaa173139764cadbfb5143a235f9a887ef70d18d00a0d91" + }, + "saved-source/oa/activities/activity_oa_restore_work.arcadia": { + "bytes": 1146, + "sha256": "131451be326e44ccf022996246cc341a32040c7ac6f56b4db4202e6c259cfc0a" + } +} diff --git a/harness/experiments/compact-help-20261001/package/extract-check.py b/harness/experiments/compact-help-20261001/package/extract-check.py new file mode 100644 index 00000000..86ed05ab --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/extract-check.py @@ -0,0 +1,27 @@ +from pathlib import Path +import hashlib, json, zipfile +root = Path(__file__).resolve().parent +archive = next((root / 'dist').glob('*.zip')) +expected = (Path(str(archive)+'.sha256')).read_text().split()[0] +assert hashlib.sha256(archive.read_bytes()).hexdigest() == expected +target = root / 'extracted' +target.mkdir(exist_ok=False) +with zipfile.ZipFile(archive) as z: + assert len(z.namelist()) == len(set(z.namelist())) == 565 + for name in z.namelist(): + p = Path(name) + assert not p.is_absolute() and '..' not in p.parts + z.extractall(target) +bundle = next(target.iterdir()) +manifest = {} +for line in (bundle / 'SHA256SUMS.txt').read_text().splitlines(): + digest, name = line.split(' ', 1) + assert name not in manifest + assert hashlib.sha256((bundle / name).read_bytes()).hexdigest() == digest, name + manifest[name] = digest +names = {p.relative_to(bundle).as_posix() for p in bundle.rglob('*') if p.is_file()} +assert names == set(manifest) | {'SHA256SUMS.txt'} +manifest['SHA256SUMS.txt'] = hashlib.sha256((bundle / 'SHA256SUMS.txt').read_bytes()).hexdigest() +report = {'status': 'PASS', 'archive': archive.name, 'archive_bytes': archive.stat().st_size, 'archive_sha256': expected, 'files': len(names), 'bundle': str(bundle), 'sha256': manifest} +(root / 'extraction-check.json').write_text(json.dumps(report, indent=2)+'\n', encoding='utf-8') +print(json.dumps({k:v for k,v in report.items() if k!='sha256'}, indent=2)) diff --git a/harness/experiments/compact-help-20261001/package/extraction-check.json b/harness/experiments/compact-help-20261001/package/extraction-check.json new file mode 100644 index 00000000..e40a5c7b --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/extraction-check.json @@ -0,0 +1,575 @@ +{ + "status": "PASS", + "archive": "ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip", + "archive_bytes": 34184534, + "archive_sha256": "18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2", + "files": 565, + "bundle": "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm", + "sha256": { + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237", + "arcadia-studio.exe": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "dependency-notices.json": "db8f66507719835a00f93a64bb9736e8b5e753b0dcca8b0fb1b36ca7b0bb91fd", + "deployment/arcadia-server.service": "1e6c6bb4065e25f8fe1d558a4ed0bbd4844782a4377c2482488db1e6f9cab01d", + "deployment/Dockerfile": "72c04aef4ec879955ed3bdf315987553d018ef46e4b8f350f0f6fe380c453eb7", + "deployment/Dockerfile.dockerignore": "6bb7d7496110b11a531cb8cd923864c6610850a8f1c4de8a797f54c7156f29e1", + "docs/api.html": "d06e32b3da838e519630a4151111bb40a383ccf294eb18443118a7498700a993", + "docs/api.rst": "d78f138d011dd0af28bd53a65d1d93381d031f680191779d4f3030a264eb2e74", + "docs/language.html": "77c14e548f5d2deea0c21a3a931347e1c87449f5be8503f6c51ceaef37be9a33", + "docs/language.rst": "7117a66e16b34cd6ce033532e984c7ca49b4611e296fb1c46c5f737fe9169ec6", + "docs/linux-packaging.md": "41a1bb1095801df37a1411341c5791d55ea8c365739314d599a60269ac4bc7a0", + "docs/openapi.json": "2ad69da52fb574435525990c906948ce54b1efd9247cdde8726969f382731790", + "docs/preview-human-checks.md": "50b56c328c22587e1187f6e614bc914210095cf635c301f335e82de11201b890", + "docs/research-v2-service.md": "4828df5bc679e7c71f49b4b85c9e7dacbec52f46d416fed48af70e08886d4e4e", + "docs/server.md": "4eb24937d424ba8b384e1734e02a6f8e963ae11d2715889c92b14b39ff2e4a48", + "docs/windows-packaging.md": "2d5ef8a9a8741e6e7f6df9db9fd9a839f806ea782a6f2063c3a98725ecfd36b6", + "documentation-check.json": "18a35f7022d6c180c42ad4fd7c7010e494bdff0d2ca395efac84ac545fe23627", + "examples/coastal-rescue.arcadia": "7e183ef9fd8154d3074303f1956cd0d9871c19e3ffc630d333b0bffbd6e30e17", + "examples/coastal-rescue.json": "242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195", + "examples/legacy-v1-coastal-rescue.arcadia": "4dbbbdf8bc7e6cb8e0a81dd678069dae585a9e5187c59bc3665e1fdab3f1a86a", + "examples/legacy-v1-coastal-rescue.oa.json": "fd0e9dedfb7adb922dc0575cc2b820d40344d639f1d8052bd70363aa59de9c24", + "examples/release1/evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "examples/release1/expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "examples/release1/model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "examples/release1/model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "examples/release1/oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f", + "examples/release1/oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "examples/release1/oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "examples/release1/oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "examples/release1/oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "examples/release1/oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "examples/release1/oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "examples/release1/oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "examples/release1/oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "examples/release1/oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "examples/release1/oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "examples/release1/project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "examples/release1/README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "examples/release1/sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "examples/release1/sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "examples/release1/sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "examples/release1/sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "examples/release1/sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "examples/release1/sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "examples/release1/sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "examples/release1/sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "examples/release1/sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c", + "examples/release1/sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "examples/release1/sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "examples/release1/sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "examples/release1/traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "examples/release1/transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "examples/release1/transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "examples/release1/views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "examples/release1/views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "examples/release1/views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "examples/release1/views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "examples/release1/views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230", + "examples/routing-workshop.arcadia": "dc6b75da72884d399132ed9e300fa5a26b73d802bb526c9af986ae9eeb0a646a", + "examples/routing-workshop.json": "8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14", + "examples/source-project/oa.arcadia": "5f60642f211b2d352a951092faeeb7503d4fb7f6f7fca99e810347231101d31c", + "examples/source-project/project.arcadia": "787f6b67b179ffd221f7e5faf1a4edd74cfd116aa1e3b5e9ed9f22fbff612d8d", + "examples/source-project/sa/assurance.arcadia": "ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f", + "examples/source-project/sa/participants.arcadia": "1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88", + "examples/source-project/sa/reporting.arcadia": "f0b7443f728912ca163de39b6055876b533a77feaa3219b2d40a2dd65712e058", + "examples/source-project/views.arcadia": "e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f", + "examples/text-first/project.arcadia": "f441535c623e0cf20e1875eb2cd33b587ed00e078c37af39cb36d89bb5edc19a", + "examples/text-first/README.md": "4ec8250d5ed556f1d496e8c85137e973e802ecb11df1a36488411e8cdc5a9f9e", + "libunwind.dll": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/arrayref-0.3.9/LICENSE": "1bc7e6f475b3ec99b7e2643411950ae2368c250dd4c5c325f80f9811362a94a1", + "licenses/dependencies/arrayvec-0.7.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/arrayvec-0.7.8/LICENSE-MIT": "4da95ec4ecb65b738d470b7d762894ad9c97da93e6cbfb18b570fc2c96f4b871", + "licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-APACHE": "0e8a410375e1ee5c75c6198b08b534fec6e5edef766cf971bab4a404542636ab", + "licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-MIT": "c733ccf8ab25df175a63d9d844677b98e3a5ab8f8de1c1616087e6868a7f948e", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY": "6226d0632e2e1a80c23597e964da9812ae193c535fe058154afb034e94167aa5", + "licenses/dependencies/autocfg-1.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/autocfg-1.5.1/LICENSE-MIT": "27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac", + "licenses/dependencies/axum-0.8.9/LICENSE": "6a13bc24a100a6812f053879ec51b126b103af7cda6dbf48c4188722da44da9f", + "licenses/dependencies/axum-core-0.5.6/LICENSE": "008c87afcd2e626eaf564093250bed06dd7efb5732113264bba3dda8f1c556a1", + "licenses/dependencies/base64-0.22.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/base64-0.22.1/LICENSE-MIT": "0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7", + "licenses/dependencies/bit-set-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/bit-set-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7", + "licenses/dependencies/bit-vec-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/bit-vec-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7", + "licenses/dependencies/bitflags-2.13.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/bitflags-2.13.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/bytes-1.12.1/LICENSE": "45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42", + "licenses/dependencies/cc-1.4.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cc-1.4.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/cfg_aliases-0.2.2/LICENSE": "31b94860253d8ec7b4529f51901044d3b459d6292d996504a36b1bae3a36a812", + "licenses/dependencies/cfg-if-1.0.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cfg-if-1.0.4/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/chacha20-0.10.2/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5", + "licenses/dependencies/chacha20-0.10.2/LICENSE-MIT": "b8c6939380a400f53e11923d50fcc4dd2fa1ba8339fd9d04cda38a0251b6c9b0", + "licenses/dependencies/clipboard-win-5.4.1/supplement/DoumanAsh-clipboard-win-3b27cf2bfd1a-LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/codespan-reporting-0.12.0/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/core_maths-0.1.1/LICENSE": "9ebf8c4cc0b735ca13a766451f7b8097db3185975ceb2ba94b5abf439156a91f", + "licenses/dependencies/cosmic-text-0.15.0/fonts/FiraMono-LICENSE": "587dd9548304fd421cd254f7550bd101c1250ffc95417f2f7f92d55b44ecbe53", + "licenses/dependencies/cosmic-text-0.15.0/fonts/Inter-LICENSE": "3c8d13d97ea5eb62868833a377034c6be6a9833e768d32abec2a767a8101e4bc", + "licenses/dependencies/cosmic-text-0.15.0/fonts/NotoSans-LICENSE": "5ec4347054089def6904da61d04f0360968f9ef36634b1fe007a5b6ec2f7aa96", + "licenses/dependencies/cosmic-text-0.15.0/LICENSE-APACHE": "000b4962e6b27176a0ff89cce4be555b16472cafb5671eb2804a8fdac6854793", + "licenses/dependencies/cosmic-text-0.15.0/LICENSE-MIT": "95557bafe728379e206f3b6d4aceeaa054d271c71d722411a6222e2dec01138c", + "licenses/dependencies/cpufeatures-0.3.1/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5", + "licenses/dependencies/cpufeatures-0.3.1/LICENSE-MIT": "73b9dc2e79c7308998dd30296e073aefaefb944a68fb89aa412c23c0edcabcaa", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-ZLIB": "b3ec01ad0869c5c50937bc68780cd0bb44e235ad858dfa54a7a381dced9b115a", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-APACHE": "b59affd015e517ed998dd735757f9a3693643cd389609947ed54074234a10784", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-MIT": "c138726a726ac37bae09d0f8a48e74e8e3aa8a8952fcd10fae0fb224cc1c05f1", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-ZLIB": "01e533bd94e8f1c32b2c2531e2c398de7d35d7804add3d574b4e1fe581d53537", + "licenses/dependencies/displaydoc-0.2.7/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/displaydoc-0.2.7/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/document-features-0.2.12/LICENSE-APACHE": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff", + "licenses/dependencies/document-features-0.2.12/LICENSE-MIT": "aa893340d14b9844625be6a50ac644169a01b52f0211cbf81b09e1874c8cd81d", + "licenses/dependencies/dpi-0.1.2/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a", + "licenses/dependencies/dpi-0.1.2/LICENSE-LIBM-MIT": "9eff396a99bafd208e7126602420d6864f6066c08b84485a5b032320a9c01997", + "licenses/dependencies/equivalent-1.0.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/equivalent-1.0.2/LICENSE-MIT": "7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349", + "licenses/dependencies/error-code-3.4.0/LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/etagere-0.2.15/LICENSE-APACHE": "2d56a37f3d1e461f6b1539ab94e0e6bcc55443e376098aee85ac3b2890860290", + "licenses/dependencies/etagere-0.2.15/LICENSE-MIT": "9cfc9c9a4608501b5da3746948d2be2dd709ad51f6bcb0c1c685760ee3dde31f", + "licenses/dependencies/euclid-0.22.14/COPYRIGHT": "ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a", + "licenses/dependencies/euclid-0.22.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/euclid-0.22.14/LICENSE-MIT": "62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3", + "licenses/dependencies/fastrand-2.5.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/fastrand-2.5.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/float_next_after-1.0.0/LICENSE": "0604d5817110dacc5c7d9b7de6b58b962794603d4823c357157bd5dec4198bc5", + "licenses/dependencies/foldhash-0.1.5/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744", + "licenses/dependencies/foldhash-0.2.0/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744", + "licenses/dependencies/font-types-0.10.1/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/font-types-0.10.1/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/font-types-0.12.4/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/font-types-0.12.4/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/fontdb-0.23.0/LICENSE": "59a1fdac3bd550043599bd159fd70f09a1108c2b09e3751d39b11e1ff8e51f00", + "licenses/dependencies/fontdb-0.23.0/tests/fonts/LICENSE.txt": "b84fdd2c3da5db56385cdbb639795e90aa3e035c53bc3591135f18df3331451f", + "licenses/dependencies/form_urlencoded-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/form_urlencoded-1.2.2/LICENSE-MIT": "20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e", + "licenses/dependencies/futures-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-channel-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-channel-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-core-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-core-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-executor-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-executor-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-io-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-io-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-macro-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-macro-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-sink-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-sink-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-task-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-task-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-util-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-util-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/getrandom-0.2.17/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf", + "licenses/dependencies/getrandom-0.2.17/LICENSE-MIT": "42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737", + "licenses/dependencies/getrandom-0.4.3/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf", + "licenses/dependencies/getrandom-0.4.3/LICENSE-MIT": "523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b", + "licenses/dependencies/gl_generator-0.14.0/supplement/brendanzab-gl-rs-ea503e8d5fb6-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/glam-0.25.0/LICENSE-APACHE": "be33ddb87a30fd321ab100e2d922cba512e50ec7a63d8e62e5bfc0798dd4b585", + "licenses/dependencies/glam-0.25.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/glow-0.16.0/LICENSE-APACHE": "b8601fc79bdf8d8088f0938bea861ffc63ed0eebbedf25f44ab2cf2e85bd7edc", + "licenses/dependencies/glow-0.16.0/LICENSE-MIT": "cdbd06e25b8c9c5d6019949d2de8123f56d29cee4166396423d2ba8c81700845", + "licenses/dependencies/glow-0.16.0/LICENSE-ZLIB": "636f644f1e149eb62961657c0e34953681eff64435653912e7bd19992666faa5", + "licenses/dependencies/glutin_wgl_sys-0.6.1/LICENSE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4", + "licenses/dependencies/gpu-alloc-0.6.2/supplement/zakarumych-gpu-alloc-61020bdcb4eb-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314", + "licenses/dependencies/gpu-alloc-types-0.3.1/supplement/zakarumych-gpu-alloc-7ddd1fe576fc-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314", + "licenses/dependencies/gpu-allocator-0.27.0/LICENSE-APACHE": "0178e21322b0e88aa3aeb3146f6a9611bc1f8df6d98bdfb34be28b9dd56a8107", + "licenses/dependencies/gpu-allocator-0.27.0/LICENSE-MIT": "ad41be6cc6538b29b9346648f41432b5e460bad6be073b5eeaa41320ea2921dc", + "licenses/dependencies/gpu-descriptor-0.3.2/supplement/zakarumych-gpu-descriptor-bb28b4e55b74-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613", + "licenses/dependencies/gpu-descriptor-types-0.2.0/supplement/zakarumych-gpu-descriptor-9f2fb9546591-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613", + "licenses/dependencies/guillotiere-0.6.2/LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1", + "licenses/dependencies/half-2.7.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/half-2.7.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1", + "licenses/dependencies/harfrust-0.3.2/LICENSE": "7d43d2ef1ce976c7bfb423c696ad9938ccfc31e9ec5be752265e43fe9d29f697", + "licenses/dependencies/harfrust-0.3.2/scripts/ms-use/COPYING": "9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b", + "licenses/dependencies/hashbrown-0.15.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.15.5/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hashbrown-0.16.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.16.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hashbrown-0.17.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.17.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hexf-parse-0.2.1/supplement/CC0-1.0.txt": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499", + "licenses/dependencies/hexf-parse-0.2.1/supplement/hexf-parse-0.2.1-Cargo.toml": "4a56dbdbc12054fd33b7a2634a45cbbe6fe12f5e6f4081002cbfa527f7220c70", + "licenses/dependencies/http-1.5.0/LICENSE-APACHE": "8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a", + "licenses/dependencies/http-1.5.0/LICENSE-MIT": "dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff", + "licenses/dependencies/http-body-1.1.0/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab", + "licenses/dependencies/http-body-util-0.1.5/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab", + "licenses/dependencies/httparse-1.10.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/httparse-1.10.1/LICENSE-MIT": "391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3", + "licenses/dependencies/httpdate-1.0.3/LICENSE-APACHE": "4d10fe5f3aa176b05b229a248866bad70b834c173f1252a814ff4748d8a13837", + "licenses/dependencies/httpdate-1.0.3/LICENSE-MIT": "934887691e05d69d7c86ad3f2c360980fa30c15b035e351f3c9865e99da4debc", + "licenses/dependencies/hyper-1.11.1/LICENSE": "2d01890414494742ba4a509fcec8efa40f6d8be22cbd72be7cff08d6fda4ec89", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c", + "licenses/dependencies/hyper-util-0.1.20/LICENSE": "9e0a97848ea543aef745c98e84fde696a9a3e0735538f6daefdd3cb1942effc1", + "licenses/dependencies/iced_core-0.14.0/src/layout/DRUID_LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/iced_core-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_debug-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_futures-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/Fira-OFL.txt": "99bfb7c1e845b79d1031fcf37e678178eb4a8c7cc74a3f218ddf7223083a6fcd", + "licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/FiraSans-Regular-NOTICE.txt": "1e0baaa389b1647d06322ac9ea37822f31995408200ae5a2805a6b9bea0810d1", + "licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/Iced-Icons-NOTICE.txt": "8175634e30f84ef72a24c4965fb0e87f45a3c1274cc0e79e0473af582cffd1c4", + "licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_program-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_renderer-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_runtime-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_tiny_skia-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_wgpu-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_widget-0.14.2/ARCADIA-PATCH.md": "d3acb98e5f423970b0bf4198373efddaea6f3a51aa282da571cf95c0f5690504", + "licenses/dependencies/iced_widget-0.14.2/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_winit-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced-0.14.0/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/icu_collections-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_locale_core-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_normalizer_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_normalizer-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_properties_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_properties-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_provider-2.3.1/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/idna_adapter-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/idna_adapter-1.2.2/LICENSE-MIT": "8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726", + "licenses/dependencies/idna-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/idna-1.1.0/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/indexmap-2.14.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/indexmap-2.14.1/LICENSE-MIT": "ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055", + "licenses/dependencies/ipnet-2.12.1/LICENSE-APACHE": "87d9feb9238c6bd8e0024fc4733b06cff036f89f36d93b7df1c8a0549bbb7a5b", + "licenses/dependencies/ipnet-2.12.1/LICENSE-MIT": "47dc9ff29128ddfb4d6a0435383c9f89120bc374dbcc1dd00b933a0b28aa7865", + "licenses/dependencies/itoa-1.0.18/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/itoa-1.0.18/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/jobserver-0.1.35/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/jobserver-0.1.35/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/khronos_api-3.1.0/supplement/brendanzab-gl-rs-f150967b1c44-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/khronos-egl-6.0.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/khronos-egl-6.0.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/kurbo-0.10.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/kurbo-0.10.4/LICENSE-MIT": "23c23145f6eac25c28cdcc03d38506a5712a9a8cffb5bd5301457f6173ea696e", + "licenses/dependencies/libc-0.2.189/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/libc-0.2.189/LICENSE-MIT": "123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e", + "licenses/dependencies/libloading-0.8.9/LICENSE": "b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f", + "licenses/dependencies/libm-0.2.16/LICENSE.txt": "3823dda7cf046602f4b4e77ec8e227863dc4736037cc85bb33d9f19febe16bb7", + "licenses/dependencies/lilt-0.8.2/LICENSE": "120b2f21f9b9f98ef4159de09f9a55a3afb6733dd1c0b1d9eeec7f136465b2cd", + "licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1", + "licenses/dependencies/litemap-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/litrs-1.0.0/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/litrs-1.0.0/LICENSE-MIT": "7dc1552e88f49132cb358b1b962fc5e79fa42d70bcbb88c526d33e45b8e98036", + "licenses/dependencies/lock_api-0.4.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/lock_api-0.4.14/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/log-0.4.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/log-0.4.34/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/lru-0.16.4/LICENSE": "061dc50af2cd9340703daf61978af3200cf681b12ea67a323c33ba109a23a45e", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-MIT": "1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-ZLIB": "09785877275ffada6c371b652a30e95c26b435126fc0fc62f1bc2d72171f80a4", + "licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/matchit-0.8.4/LICENSE": "de701d0618d694feb1af90f02181a1763d9b0bdeb70a3a592781e529077dba65", + "licenses/dependencies/matchit-0.8.4/LICENSE.httprouter": "162ce11ad71338d0a0c6ebaf5c48af72c6ae237b468859d3656fe2d9ed3f3a85", + "licenses/dependencies/memchr-2.8.3/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/memchr-2.8.3/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f", + "licenses/dependencies/memchr-2.8.3/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/memmap2-0.9.11/LICENSE-APACHE": "04ea4849dba9dcae07113850c6f1b1a69052c625210639914eee352023f750ad", + "licenses/dependencies/memmap2-0.9.11/LICENSE-MIT": "0d25d03b5ab49576178ad0cae7a2648d12c17ad0452fe49c07e55e4b59aa5257", + "licenses/dependencies/mime-0.3.17/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/mime-0.3.17/LICENSE-MIT": "df9cfd06d8a44d9a671eadd39ffd97f166481da015a30f45dfd27886209c5922", + "licenses/dependencies/mio-1.2.3/LICENSE": "07919255c7e04793d8ea760d6c2ce32d19f9ff02bdbdde3ce90b1e1880929a9b", + "licenses/dependencies/naga-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/naga-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/num-bigint-0.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-bigint-0.5.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/num-integer-0.1.47/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-integer-0.1.47/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/num-traits-0.2.19/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-traits-0.2.19/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/oa-core-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/oa-desktop-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/oa-server-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/once_cell-1.21.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/once_cell-1.21.4/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/ordered-float-5.5.0/LICENSE-MIT": "f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4", + "licenses/dependencies/parking_lot_core-0.9.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/parking_lot_core-0.9.12/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/parking_lot-0.12.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/parking_lot-0.12.5/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/percent-encoding-2.3.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/percent-encoding-2.3.2/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/pin-project-lite-0.2.17/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/pkg-config-0.3.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/pkg-config-0.3.34/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/potential_utf-0.1.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/presser-0.3.1/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/presser-0.3.1/LICENSE-MIT": "090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b", + "licenses/dependencies/proc-macro2-1.0.107/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/proc-macro2-1.0.107/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-APACHE": "10d30a673cd5e9349bdc02aeb48f14b3386d27d0da32df8f0a555d4aa16aa551", + "licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-MIT": "c8167fdeeed46d3f244d3f85c5bf998ce889343691c32be2c61a8bc4b5c08333", + "licenses/dependencies/quinn-0.11.11/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-0.11.11/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quinn-proto-0.11.17/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-proto-0.11.17/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quinn-udp-0.5.15/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-udp-0.5.15/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quote-1.0.47/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/quote-1.0.47/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/rand_core-0.10.1/COPYRIGHT": "92b81db30f7ab6d693e0af5661a40d273ca1947e891123ed823924192c10cbc7", + "licenses/dependencies/rand_core-0.10.1/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51", + "licenses/dependencies/rand_core-0.10.1/LICENSE-MIT": "8b6e9feec03e7c9a5facb26855cecd31662bf989b636bcfe79521bdf8ac863f0", + "licenses/dependencies/rand_pcg-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5", + "licenses/dependencies/rand_pcg-0.10.2/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51", + "licenses/dependencies/rand_pcg-0.10.2/LICENSE-MIT": "2234e3cefee876aeb686ad89e978bdb07bf118a1186ab1cf161bcdf69d4b4f57", + "licenses/dependencies/rand-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5", + "licenses/dependencies/rand-0.10.2/LICENSE-APACHE": "35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab", + "licenses/dependencies/rand-0.10.2/LICENSE-MIT": "209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b", + "licenses/dependencies/range-alloc-0.1.5/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/range-alloc-0.1.5/LICENSE.MIT": "ba00052102ed87948bb8822d6e1c496260c83042887b22bb5caad922ec025a60", + "licenses/dependencies/rangemap-1.8.0/LICENSE-APACHE": "1c7745cc26c7294bc9dbc883bcd50700b99a8c0f4859bfce84ec555098ce1ab5", + "licenses/dependencies/rangemap-1.8.0/LICENSE-MIT": "29a4c3823ee29ee5a97c145574a1bac20629fd5e6708be1df0d25bab563e093c", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-APACHE.md": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-MIT.md": "9c5a80639a57c1c945570e7ebbca0706305849ce3c098021325cca9db2f7acc4", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-ZLIB.md": "ae895c8576e682f310fb70d93d9f99b1dd82872094c54a8f6cdfe2ca5c2d6ecb", + "licenses/dependencies/read-fonts-0.35.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/read-fonts-0.35.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/read-fonts-0.41.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/read-fonts-0.41.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-MIT": "24b2f2eff5a7622e87162823e260f00c6dfbce0e26d585d3d28c785f1edc80ed", + "licenses/dependencies/reqwest-0.12.28/LICENSE-APACHE": "751963a8b88c0e3a9f27e98933079fbcf09b9998b2c13ac49c2e4d58444520d6", + "licenses/dependencies/reqwest-0.12.28/LICENSE-MIT": "47d4e1803702728e03d30f8a848ae2249ba274bbd9f8443e803f7924d83cd371", + "licenses/dependencies/rfd-0.15.4/LICENSE": "65fc947f4bac882a2cd104ef73c246b1b037059df9f2b3a58b7f77f0b9e56071", + "licenses/dependencies/ring-0.17.14/LICENSE": "b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a", + "licenses/dependencies/ring-0.17.14/LICENSE-BoringSSL": "005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d", + "licenses/dependencies/ring-0.17.14/LICENSE-other-bits": "f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f", + "licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-MIT": "6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc", + "licenses/dependencies/ring-0.17.14/third_party/fiat/LICENSE": "9eacbcb81be660840c714a560a9d65ba07913db98dd4baf969f78dd499fdd60f", + "licenses/dependencies/rustc-hash-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/rustc-hash-1.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/rustc-hash-2.1.3/LICENSE-APACHE": "95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc", + "licenses/dependencies/rustc-hash-2.1.3/LICENSE-MIT": "30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652", + "licenses/dependencies/rustls-0.23.43/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/rustls-0.23.43/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4", + "licenses/dependencies/rustls-0.23.43/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c", + "licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-APACHE": "45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742", + "licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-MIT": "9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639", + "licenses/dependencies/rustls-webpki-0.103.15/LICENSE": "5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a", + "licenses/dependencies/ryu-1.0.23/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/ryu-1.0.23/LICENSE-BOOST": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/same-file-1.0.6/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/same-file-1.0.6/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14", + "licenses/dependencies/same-file-1.0.6/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/scopeguard-1.2.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/scopeguard-1.2.0/LICENSE-MIT": "fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7", + "licenses/dependencies/self_cell-1.3.0/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/self_cell-1.3.0/LICENSE-GPLv2": "f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505", + "licenses/dependencies/serde_core-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_core-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_derive-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_derive-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_json-1.0.151/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_json-1.0.151/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-MIT": "b9eb266294324f672cbe945fe8f2e32f85024f0d61a1a7d14382cdde0ac44769", + "licenses/dependencies/serde-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/sha1_smol-1.0.1/LICENSE": "282a21b0710441c364025461a447362daf18f5798a7b72ae2f801a2aa536da51", + "licenses/dependencies/shlex-2.0.1/LICENSE-APACHE": "553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583", + "licenses/dependencies/shlex-2.0.1/LICENSE-MIT": "4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1", + "licenses/dependencies/skrifa-0.37.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/skrifa-0.37.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/skrifa-0.44.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/skrifa-0.44.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/slab-0.4.12/LICENSE": "8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18", + "licenses/dependencies/slotmap-1.1.1/LICENSE": "6cec81441b2ab2b5090954c1fb5d0bcca81b86487b5849061fa8952d20ef67d4", + "licenses/dependencies/smallvec-1.16.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/smallvec-1.16.0/LICENSE-MIT": "0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9", + "licenses/dependencies/smol_str-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/smol_str-0.2.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/socket2-0.6.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/socket2-0.6.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/softbuffer-0.4.8/LICENSE-APACHE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4", + "licenses/dependencies/softbuffer-0.4.8/LICENSE-MIT": "0463bfa47d6d763d8c824333efb0e6d6df3946c13c3b077c78ed9f23ca50d0f2", + "licenses/dependencies/spirv-0.3.0+sdk-1.3.268.0/supplement/gfx-rs-rspirv-e91a5debc10c-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT": "5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7", + "licenses/dependencies/static_assertions-1.1.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/static_assertions-1.1.0/LICENSE-MIT": "ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061", + "licenses/dependencies/strict-num-0.1.1/LICENSE": "3085885678bb161f6c472bbd331f66a2550b555eb76128f7f8247779128199c0", + "licenses/dependencies/subtle-2.6.1/LICENSE": "d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b", + "licenses/dependencies/svg_fmt-0.4.5/supplement/nical-rust_debug-93f414cd572b-LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1", + "licenses/dependencies/swash-0.2.10/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/swash-0.2.10/LICENSE-MIT": "122dadfc2eb4de0f4bafcd9eb4e7502cfe338a7965ebd1d18708cc5050f43f76", + "licenses/dependencies/syn-2.0.119/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/syn-2.0.119/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/syn-3.0.5/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/syn-3.0.5/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/sync_wrapper-1.0.2/LICENSE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/synstructure-0.13.2/LICENSE": "219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59", + "licenses/dependencies/sys-locale-0.3.2/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/sys-locale-0.3.2/LICENSE-MIT": "5cc390ab5e5e6507f467368cbab1297552d64bfd863f4b496c7928508bcfefd8", + "licenses/dependencies/tempfile-3.27.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/tempfile-3.27.0/LICENSE-MIT": "8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36", + "licenses/dependencies/termcolor-1.4.1/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/termcolor-1.4.1/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f", + "licenses/dependencies/termcolor-1.4.1/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/thiserror-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-impl-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-impl-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-impl-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/tiny-skia-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced", + "licenses/dependencies/tiny-skia-path-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced", + "licenses/dependencies/tinystr-0.8.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md": "4f44572785f35152c1fd2eadf565b7e079c0f300b4324f0af653419f9d76b735", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md": "1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md": "41ace205715d9f19a3214218cc1c01d57c533e02cd0fef7c8e51a49a7fce5ac5", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-MIT.md": "fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/tokio-1.53.1/LICENSE": "253cd04c6714889df2d32f3f64d669179a1c95c76ac43c40882c52eb06bc3552", + "licenses/dependencies/tokio-macros-2.7.2/LICENSE": "0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9", + "licenses/dependencies/tokio-rustls-0.26.5/LICENSE-APACHE": "cc117d90b498b32b11a886f279b359da16a73c3b01efbb2f5cc004b20262334e", + "licenses/dependencies/tokio-rustls-0.26.5/LICENSE-MIT": "e20fa2b8e0a2565f24a792b94b4bf4b6c2b9d36f781d8a9516e218a036e6677a", + "licenses/dependencies/tower-0.5.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tower-http-0.6.11/LICENSE": "5049cf464977eff4b4fcfa7988d84e74116956a3eb9d5f1d451b3f828f945233", + "licenses/dependencies/tower-layer-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tower-service-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tracing-0.1.44/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-attributes-0.1.31/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-core-0.1.36/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-core-0.1.36/src/spin/LICENSE": "58545fed1565e42d687aecec6897d35c6d37ccb71479a137c0deb2203e125c79", + "licenses/dependencies/try-lock-0.2.5/LICENSE": "c816a0749cdc6bf062a5111c159723de51b2bfac66a1dac2655abd9e6b1583eb", + "licenses/dependencies/ttf-parser-0.25.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/ttf-parser-0.25.1/LICENSE-MIT": "f3c9fe731c701ed77fd5fbaac573872af04dc5869385eb9bd5e3c73c42713814", + "licenses/dependencies/ttf-parser-0.25.1/tests/fonts/colr_1_LICENSE": "58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd", + "licenses/dependencies/unicode-bidi-0.3.18/COPYRIGHT": "edb20b474f6cbd4f4db066b54a9e0f687d0009d309412a63431189b59b8e2a07", + "licenses/dependencies/unicode-bidi-0.3.18/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-bidi-0.3.18/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE": "f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1", + "licenses/dependencies/unicode-linebreak-0.1.5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/unicode-script-0.5.8/LICENSE-APACHE": "7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737", + "licenses/dependencies/unicode-script-0.5.8/LICENSE-MIT": "7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c", + "licenses/dependencies/unicode-segmentation-1.13.3/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d", + "licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/unicode-width-0.2.2/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d", + "licenses/dependencies/unicode-width-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-width-0.2.2/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/untrusted-0.9.0/LICENSE.txt": "7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621", + "licenses/dependencies/url-2.5.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/url-2.5.8/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/utf8_iter-1.0.4/COPYRIGHT": "c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c", + "licenses/dependencies/utf8_iter-1.0.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/utf8_iter-1.0.4/LICENSE-MIT": "3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c", + "licenses/dependencies/uuid-1.26.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/uuid-1.26.0/LICENSE-MIT": "436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d", + "licenses/dependencies/version_check-0.9.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/version_check-0.9.5/LICENSE-MIT": "b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e", + "licenses/dependencies/want-0.3.1/LICENSE": "a65f5d0a945d267751344c95665945b90c030ea107faf5c85d518929886187da", + "licenses/dependencies/web-time-1.1.0/LICENSE-APACHE": "54a744942eb3fa63a74d8d359989ed6962c04f3f10ff20cfa08ff8aa7efbe4e6", + "licenses/dependencies/web-time-1.1.0/LICENSE-MIT": "f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b", + "licenses/dependencies/webpki-roots-1.0.9/LICENSE": "e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8", + "licenses/dependencies/wgpu-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-core-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-core-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-hal-27.0.4/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-hal-27.0.4/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-types-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-types-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/winapi-util-0.1.11/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/winapi-util-0.1.11/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14", + "licenses/dependencies/winapi-util-0.1.11/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/window_clipboard-0.5.1/LICENSE": "7faec985f3e9b1c4a1df646bfedc304ba67e409447f7ab7f4f591f68708d85dc", + "licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-core-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-core-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-implement-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-implement-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-interface-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-interface-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-link-0.2.1/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-link-0.2.1/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-result-0.2.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-result-0.2.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-strings-0.1.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-strings-0.1.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.52.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.52.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.59.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.59.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.61.2/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.61.2/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-targets-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-targets-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/winit-0.30.13/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a", + "licenses/dependencies/writeable-0.6.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/xml-rs-0.8.29/LICENSE": "0dc18d924dc0a5f41172a393012843a5eaaef338e795b3645da9cc3b6068220b", + "licenses/dependencies/yazi-0.2.1/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c", + "licenses/dependencies/yazi-0.2.1/LICENSE-MIT": "df62e3ef3f207c91073fedd78b4156a278681d0dd3f942379242c62c6a71a3ec", + "licenses/dependencies/yoke-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/yoke-derive-0.8.2/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zeno-0.3.3/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c", + "licenses/dependencies/zeno-0.3.3/LICENSE-MIT": "34dff8202d63e6df022f4f0ce88dab24f254c35ee0d5958b74dcf74d9eae21cc", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df", + "licenses/dependencies/zerofrom-0.1.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerofrom-derive-0.1.7/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zeroize-1.9.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/zeroize-1.9.0/LICENSE-MIT": "8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b", + "licenses/dependencies/zerotrie-0.2.5/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerovec-0.11.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerovec-derive-0.11.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zmij-1.0.23/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/llvm-libunwind/llvm-ea7d852a70e8-libunwind-LICENSE.TXT": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d", + "licenses/llvm-mingw-LICENSE.TXT": "8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee", + "licenses/rust/COPYING.RUNTIME": "28e85c5aa4af9b4f1dfe6b4817aa3eefb3eaaee7fd735045016f29ccf50276a1", + "licenses/rust/COPYING3": "8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903", + "licenses/rust/COPYRIGHT-library.html": "68129500b616d5838629e68f55ff3aed5e096dacf60ce9eb41bbe599a563afa6", + "licenses/rust/COPYRIGHT.html": "5b0c93fc4e6d4b072eaa521b1762d1e746f4c368f65e81a0e5308e2772dac85e", + "package.json": "36bcff8a760c08674f3fc017bb5affc8a5f4f39174ac9d5a29298f2423155832", + "README.md": "597cfb8da873e019d2658420f18ec059f0185fa9106ff9eafe934dfdd6ed266b", + "START-HERE.txt": "a549295cf57ac73673dc4fa6106463450f982122793cb9c7135ce4fc7087e9ed", + "THIRD-PARTY-NOTICES.txt": "32bbbd437f15b67690c6704fc14e2f12ae0fd463aa2eb5e4c99c1d61857f87fb", + "SHA256SUMS.txt": "37a2802abb67369f014270a7814e75dd00b26c1bb9c3ee37decf5eb3bacf695b" + } +} diff --git a/harness/experiments/compact-help-20261001/package/final-evidence-review.md b/harness/experiments/compact-help-20261001/package/final-evidence-review.md new file mode 100644 index 00000000..7e7e2c7d --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/final-evidence-review.md @@ -0,0 +1,18 @@ +# Independent final compact Help release-evidence review + +Bounded acceptance: no material blocker found in the reviewed #39 release claims or evidence packet. This accepts scoped Windows development-preview evidence, not complete OA/SA acceptance, a final full-suite pass, publication confirmation, or the separate #46 correction. + +Reviewed `harness/release-compact-help-validation-20261001.md`, top checkpoint in `harness/STATE.md`, `.local/package39/release-notes.md`, copied package packet and linked contribution records. Read-only source/file/JSON checks; no compiler, GUI, server launch, Gitea operation or tracked-file edit. This review file is the only new artifact. + +Independent checks: + +- All 133 entries of `package/evidence-files.json` match exact sizes and SHA256. The packet has 134 files; only the inventory itself is unlisted. Corresponding copied files match local originals. Reviewed relative Markdown links resolve. +- Actual ZIP is 34,184,534 bytes, SHA256 `18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2`. All 565 current extracted-file hashes equal the extraction record. +- Desktop `6e7c4dda`, reused server `715036e1`, and package-documentation `ea23e229` roles are explicit. Git comparison confirms unchanged core/server/Cargo/vendor inputs; the desktop-to-documentation delta contains evidence only. Runtime pairing explicitly uses the new selected DLL and fresh recorded server checks. +- Final focused log: 125 passed, zero failures/ignores, 1,421 filtered out. Earlier 5657 full-suite log: 1,538 passed, one failed synthetic typing precondition, seven ignores. Documents retain this distinction and corrected-test evidence. +- Native reports and receipts support scoped Help/caret/minimum-window/edit/save/history/reopen, two normal exits with empty logs, and retained source oracles. Same-folder/new-entry refusal remains visible and correctly classified as destination protection with misleading wording tracked in #46. Recovery here means normal Save All/fresh-destination continuation; no interrupted-transaction recovery claim is inferred. +- Reused prior independent JSON/byte reconciliation: both complete source receipts equal requests and actual disk bundles; complete saved Project differs only in Activity `61f7bbfb-74a4-5540-9182-2583dfb27a49` name. All 37 destination files match pristine bytes after one name-literal change and entry relocation. The 30 application-written source files and seven separately copied companions are distinguished. +- Corrected server result retains 23 checks, 11 exchanges, exact executable/runtime pins and forced TerminateProcess exits. Restart acceptance is limited to acknowledged-write persistence, excluding graceful shutdown and power-loss safety. Original Unicode-fixture error remains preserved; corrected-run evidence is separate. +- User-deferred Linux/WSL, one-machine/account scope, broad accessibility/DPI gaps, incomplete OA/SA and excluded peer increments remain explicit. Extra model warning after rename is acknowledged. + +No reviewed document asserts that the new tag/release/assets have already been published. Release notes are prospective release copy; publication and asset readback still require separate confirmation. Existing published releases remain frozen. diff --git a/harness/experiments/compact-help-20261001/package/graphics-environment.json b/harness/experiments/compact-help-20261001/package/graphics-environment.json new file mode 100644 index 00000000..559edd78 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/graphics-environment.json @@ -0,0 +1,5 @@ +{ + "Name": "VMware SVGA 3D", + "DriverVersion": "9.17.11.4", + "AdapterRAM": 268435456 +} diff --git a/harness/experiments/compact-help-20261001/package/launch-native-reopen.py b/harness/experiments/compact-help-20261001/package/launch-native-reopen.py new file mode 100644 index 00000000..76e80241 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/launch-native-reopen.py @@ -0,0 +1,22 @@ +from pathlib import Path +import datetime,hashlib,json,os,platform,subprocess +root=Path(__file__).resolve().parent +record=json.loads((root/'extraction-check.json').read_text(encoding='utf-8')) +bundle=Path(record['bundle']) +run=root/'native-reopen';run.mkdir(exist_ok=False) +work=root/'working' +sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +env=os.environ.copy();system=os.environ['SystemRoot'];env['PATH']=str(Path(system)/'System32')+';'+system +for k in list(env): + if k.startswith(('CARGO_','RUST','LLVM','WGPU','ARCADIA_')):del env[k] +cmd=[str(bundle/'arcadia-studio.exe')] +start={'source':'6e7c4ddaf0775198384a8c4882809ea8e14b2976','package_source':'ea23e229260d7d050b3c3b88e77c3a851e936abe','start':datetime.datetime.now(datetime.timezone.utc).isoformat(),'command':cmd,'cwd':str(work),'path':env['PATH'],'platform':platform.platform(),'binary_sha256':sha(Path(cmd[0])),'runtime_sha256':sha(bundle/'libunwind.dll')} +assert start['binary_sha256']==record['sha256']['arcadia-studio.exe'] +with (run/'stdout.log').open('xb') as out,(run/'stderr.log').open('xb') as err: + child=subprocess.Popen(cmd,cwd=work,env=env,stdout=out,stderr=err,creationflags=subprocess.CREATE_NO_WINDOW) + start['pid']=child.pid;(run/'started.json').write_text(json.dumps(start,indent=2)+'\n',encoding='utf-8');print(json.dumps(start,indent=2),flush=True) + code=child.wait() +inventory={p.relative_to(bundle).as_posix():sha(p) for p in bundle.rglob('*') if p.is_file()} +finish={**start,'exit_code':code,'finished':datetime.datetime.now(datetime.timezone.utc).isoformat(),'stdout_bytes':(run/'stdout.log').stat().st_size,'stderr_bytes':(run/'stderr.log').stat().st_size,'package_files_unchanged':inventory==record['sha256']} +(run/'finished.json').write_text(json.dumps(finish,indent=2)+'\n',encoding='utf-8');print(json.dumps(finish,indent=2),flush=True) +assert code==0 and finish['stdout_bytes']==finish['stderr_bytes']==0 and finish['package_files_unchanged'] diff --git a/harness/experiments/compact-help-20261001/package/launch-native.py b/harness/experiments/compact-help-20261001/package/launch-native.py new file mode 100644 index 00000000..f4a3e6a3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/launch-native.py @@ -0,0 +1,33 @@ +from pathlib import Path +import datetime, hashlib, json, os, platform, subprocess +root = Path(__file__).resolve().parent +record = json.loads((root / 'extraction-check.json').read_text()) +bundle = Path(record['bundle']) +run = root / 'native' +work = root / 'working' +sha = lambda p: hashlib.sha256(p.read_bytes()).hexdigest() +def inventory(p): + return {f.relative_to(p).as_posix(): sha(f) for f in p.rglob('*') if f.is_file()} +baseline = inventory(work / 'release1') +with (run / 'baseline.json').open('x', encoding='utf-8') as f: + json.dump(baseline, f, indent=2) +env = os.environ.copy() +system = os.environ['SystemRoot'] +env['PATH'] = str(Path(system) / 'System32') + ';' + system +for key in list(env): + if key.startswith(('CARGO_', 'RUST', 'LLVM', 'WGPU', 'ARCADIA_')): + del env[key] +cmd = [str(bundle / 'arcadia-studio.exe')] +assert sha(Path(cmd[0])) == record['sha256']['arcadia-studio.exe'] +assert sha(bundle / 'libunwind.dll') == record['sha256']['libunwind.dll'] +receipt = {'source': '6e7c4ddaf0775198384a8c4882809ea8e14b2976', 'package_source': 'ea23e229260d7d050b3c3b88e77c3a851e936abe', 'start': datetime.datetime.now(datetime.timezone.utc).isoformat(), 'command': cmd, 'cwd': str(work), 'path': env['PATH'], 'platform': platform.platform(), 'binary_sha256': sha(Path(cmd[0])), 'runtime_sha256': sha(bundle / 'libunwind.dll')} +with (run / 'stdout.log').open('xb') as out, (run / 'stderr.log').open('xb') as err: + child = subprocess.Popen(cmd, cwd=work, env=env, stdout=out, stderr=err, creationflags=subprocess.CREATE_NO_WINDOW) + receipt['pid'] = child.pid + (run / 'started.json').write_text(json.dumps(receipt, indent=2)+'\n', encoding='utf-8') + print(json.dumps(receipt, indent=2), flush=True) + code = child.wait() +receipt.update({'exit_code': code, 'finished': datetime.datetime.now(datetime.timezone.utc).isoformat(), 'stdout_bytes': (run / 'stdout.log').stat().st_size, 'stderr_bytes': (run / 'stderr.log').stat().st_size, 'package_files_unchanged': inventory(bundle) == record['sha256']}) +(run / 'finished.json').write_text(json.dumps(receipt, indent=2)+'\n', encoding='utf-8') +print(json.dumps(receipt, indent=2), flush=True) +assert code == 0 and receipt['stdout_bytes'] == receipt['stderr_bytes'] == 0 and receipt['package_files_unchanged'] diff --git a/harness/experiments/compact-help-20261001/package/model-warnings/pristine.json b/harness/experiments/compact-help-20261001/package/model-warnings/pristine.json new file mode 100644 index 00000000..3a6dbb12 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/model-warnings/pristine.json @@ -0,0 +1 @@ +{"issues":[{"code":"work_without_behavior_context","message":"Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.","object_id":"4149a872-3440-59de-9879-8981e78d27ab","severity":"warning"}],"revision":1,"valid":true} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/model-warnings/result.json b/harness/experiments/compact-help-20261001/package/model-warnings/result.json new file mode 100644 index 00000000..1eea30b1 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/model-warnings/result.json @@ -0,0 +1,52 @@ +{ + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--bind", + "127.0.0.1:51265", + "--data-dir", + "C:\\ar-compact-01a0d717\\.local\\package39\\native-model-oracle\\store" + ], + "pid": 3116, + "exit": 1, + "records": [ + { + "label": "pristine", + "path": "/api/v1/projects/b1120b39-d420-496a-855a-b9ee0524b653/validation", + "response": { + "issues": [ + { + "code": "work_without_behavior_context", + "message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.", + "object_id": "4149a872-3440-59de-9879-8981e78d27ab", + "severity": "warning" + } + ], + "revision": 1, + "valid": true + } + }, + { + "label": "saved", + "path": "/api/v1/projects/0f2b9beb-fe51-4996-9367-568d77191729/validation", + "response": { + "issues": [ + { + "code": "trace_drift", + "field": "baseline", + "message": "Linked descriptions changed since review (OaChanged); preview the transition to reconcile them.", + "object_id": "5309f955-53fd-5ff4-9c0a-91737e947341", + "severity": "warning" + }, + { + "code": "work_without_behavior_context", + "message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.", + "object_id": "4149a872-3440-59de-9879-8981e78d27ab", + "severity": "warning" + } + ], + "revision": 1, + "valid": true + } + } + ] +} diff --git a/harness/experiments/compact-help-20261001/package/model-warnings/saved.json b/harness/experiments/compact-help-20261001/package/model-warnings/saved.json new file mode 100644 index 00000000..5993ae07 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/model-warnings/saved.json @@ -0,0 +1 @@ +{"issues":[{"code":"trace_drift","field":"baseline","message":"Linked descriptions changed since review (OaChanged); preview the transition to reconcile them.","object_id":"5309f955-53fd-5ff4-9c0a-91737e947341","severity":"warning"},{"code":"work_without_behavior_context","message":"Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.","object_id":"4149a872-3440-59de-9879-8981e78d27ab","severity":"warning"}],"revision":1,"valid":true} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/model-warnings/stderr.log b/harness/experiments/compact-help-20261001/package/model-warnings/stderr.log new file mode 100644 index 00000000..330f6600 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/model-warnings/stderr.log @@ -0,0 +1 @@ +arcadia-server 0.2.0 listening on 127.0.0.1:51265; data C:\ar-compact-01a0d717\.local\package39\native-model-oracle\store diff --git a/harness/experiments/compact-help-20261001/package/model-warnings/stdout.log b/harness/experiments/compact-help-20261001/package/model-warnings/stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle.py b/harness/experiments/compact-help-20261001/package/native-model-oracle.py new file mode 100644 index 00000000..e2cda530 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle.py @@ -0,0 +1,58 @@ +"""Decode full pristine/saved source bundles with the exact packaged server.""" +from pathlib import Path +import copy, hashlib, http.client, json, os, socket, subprocess, time +root=Path(__file__).resolve().parent +proof=json.loads((root/'extraction-check.json').read_text(encoding='utf-8')) +bundle=Path(proof['bundle']) +run=root/'native-model-oracle';run.mkdir(exist_ok=False) +exe=bundle/'arcadia-server.exe' +assert hashlib.sha256(exe.read_bytes()).hexdigest()==proof['sha256']['arcadia-server.exe'] +assert hashlib.sha256((bundle/'libunwind.dll').read_bytes()).hexdigest()==proof['sha256']['libunwind.dll'] +env={k:os.environ[k] for k in ['SystemRoot','WINDIR','TEMP','TMP','USERPROFILE','LOCALAPPDATA','APPDATA','COMSPEC','OS','PROCESSOR_ARCHITECTURE'] if k in os.environ} +env['PATH']=str(Path(os.environ['SystemRoot'])/'System32')+';'+os.environ['SystemRoot'] +with socket.socket() as s:s.bind(('127.0.0.1',0));port=s.getsockname()[1] +cmd=[str(exe),'--bind',f'127.0.0.1:{port}','--data-dir',str(run/'store')] +report={'status':'RUNNING','command':cmd,'path':env['PATH'],'server_sha256':proof['sha256']['arcadia-server.exe'],'runtime_sha256':proof['sha256']['libunwind.dll']} +counter=0 +def request(method,path,body=None): + global counter + counter+=1 + raw=b'' if body is None else json.dumps(body,ensure_ascii=False).encode('utf-8') + (run/f'{counter:02d}.request.json').write_bytes(raw) + c=http.client.HTTPConnection('127.0.0.1',port,timeout=10) + c.request(method,path,body=raw or None,headers={'Content-Type':'application/json','Connection':'close'}) + r=c.getresponse();data=r.read();status=r.status + (run/f'{counter:02d}.response.json').write_bytes(data);c.close() + assert status in (200,201),(status,data) + return json.loads(data) +with (run/'stdout.log').open('xb') as out,(run/'stderr.log').open('xb') as err: + child=subprocess.Popen(cmd,cwd=run,env=env,stdout=out,stderr=err,creationflags=subprocess.CREATE_NO_WINDOW) + report['pid']=child.pid + try: + for _ in range(100): + assert child.poll() is None + try: + with socket.create_connection(('127.0.0.1',port),timeout=.1):break + except OSError:time.sleep(.1) + request('GET','/health/ready') + models=[] + source_records=[] + for folder,entry in [(bundle/'examples/release1','project.arcadia'),(root/'working/saved','qa-saved.arcadia')]: + files={p.relative_to(folder).as_posix():p.read_bytes().decode('utf-8') for p in folder.rglob('*.arcadia')} + assert len(files)==30 + source={'entry':entry,'files':files} + imported=request('POST','/api/v1/projects/import-source-project',source) + envelope=request('GET','/api/v1/projects/'+imported['resource_id']) + assert envelope['source_project']==source + models.append(envelope['model']);source_records.append(imported['resource_id']) + expected=copy.deepcopy(models[0]) + target='61f7bbfb-74a4-5540-9182-2583dfb27a49' + assert expected['elements'][target]['name']=='Assess pressure alarm' + expected['elements'][target]['name']='Assess pressure alarm QA LEFT XYRIGHT' + assert models[1]==expected,'Complete saved Project must have only declared Activity-name delta' + report.update({'status':'PASS','resource_ids':source_records,'source_files_each':30,'model_delta':{'id':target,'field':'name','before':'Assess pressure alarm','after':'Assess pressure alarm QA LEFT XYRIGHT'},'complete_project_equal_to_declared_delta':True,'source_preserved_exactly':True}) + finally: + child.terminate();report['server_exit']=child.wait(timeout=15) + report['shutdown_scope']='Owned TerminateProcess after acknowledged import/read; no graceful shutdown claim.' +(run/'result.json').write_text(json.dumps(report,indent=2)+'\n',encoding='utf-8') +print(json.dumps(report,indent=2)) diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/01.request.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/01.request.json new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/01.response.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/01.response.json new file mode 100644 index 00000000..1a36cf5f --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/01.response.json @@ -0,0 +1 @@ +{"status":"ok"} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/02.request.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/02.request.json new file mode 100644 index 00000000..f22bed16 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/02.request.json @@ -0,0 +1 @@ +{"entry": "project.arcadia", "files": {"project.arcadia": "arcadia 7;\nproject pressure_restoration \"Restore safe water pressure — release 1 walkthrough\" id \"2786d72f-5763-5f33-a57f-2773a4ca1a6c\" {\n description \"A controller either resets a valve remotely or requests field repair. Compare the operational need with the explicitly chosen coordination-service boundary. Start with README.md beside project.arcadia. Units and guards are descriptive; this model does not simulate a real water network.\";\n include \"oa/activities/activity_oa_restore_work.arcadia\";\n include \"oa/behavior/process_oa_assessment_procedure.arcadia\";\n include \"oa/behavior/process_oa_field_procedure.arcadia\";\n include \"oa/behavior/process_oa_response.arcadia\";\n include \"oa/behavior/scenario_oa_conversation.arcadia\";\n include \"oa/behavior/scenario_oa_full_scenario.arcadia\";\n include \"oa/behavior/state_machine_oa_monitor.arcadia\";\n include \"oa/capabilities.arcadia\";\n include \"oa/model.arcadia\";\n include \"oa/participants.arcadia\";\n include \"oa/types.arcadia\";\n include \"sa/behavior/process_sa_assessment_procedure.arcadia\";\n include \"sa/behavior/process_sa_field_procedure.arcadia\";\n include \"sa/behavior/process_sa_response.arcadia\";\n include \"sa/behavior/scenario_sa_conversation.arcadia\";\n include \"sa/behavior/scenario_sa_full_scenario.arcadia\";\n include \"sa/behavior/state_machine_sa_monitor.arcadia\";\n include \"sa/capabilities.arcadia\";\n include \"sa/functions/function_sa_audit_thresholds.arcadia\";\n include \"sa/functions/function_sa_restore_work.arcadia\";\n include \"sa/model.arcadia\";\n include \"sa/participants.arcadia\";\n include \"sa/types.arcadia\";\n include \"traceability.arcadia\";\n include \"views/diagram_oa_allocation_view.arcadia\";\n include \"views/diagram_sa_allocation_view.arcadia\";\n include \"views/diagram_sa_capability_view.arcadia\";\n include \"views/diagram_sa_service_view.arcadia\";\n include \"views/diagram_sa_state_view.arcadia\";\n}\n", "traceability.arcadia": "trace trace_oa_alarm_transition \"State transition: Awaiting repair ↔ State transition: Awaiting repair\" id \"0c7c8a06-163e-5b3e-8a98-e66e2ce8963b\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Awaiting repair\";\n };\n sa {\n description \"\";\n name \"State transition: Awaiting repair\";\n };\n };\n kind Manual;\n oa @oa_alarm_transition;\n sa @sa_alarm_transition;\n}\n\ntrace trace_oa_assess \"Assess pressure alarm ↔ Assess pressure alarm\" id \"5309f955-53fd-5ff4-9c0a-91737e947341\" {\n baseline {\n oa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n };\n oa @oa_assess;\n sa @sa_assess;\n}\n\ntrace trace_oa_assess_allocation \"Allocation: Assess pressure alarm ↔ Allocation: Assess pressure alarm\" id \"acdbee9c-5017-5154-804e-50801f0376ec\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Allocation: Assess pressure alarm\";\n };\n };\n kind Manual;\n oa @oa_assess_allocation;\n sa @sa_assess_allocation;\n}\n\ntrace trace_oa_assess_on_entry \"Assess when repair is needed ↔ Assess when repair is needed\" id \"fb02420d-b066-5773-87c1-198a056e0731\" {\n baseline {\n oa {\n description \"\";\n name \"Assess when repair is needed\";\n };\n sa {\n description \"\";\n name \"Assess when repair is needed\";\n };\n };\n kind Manual;\n oa @oa_assess_on_entry;\n sa @sa_assess_on_entry;\n}\n\ntrace trace_oa_assess_step \"Assess the alarm ↔ Assess the alarm\" id \"e848da41-445e-5e3c-8b4e-ef53fdddf1e1\" {\n baseline {\n oa {\n description \"\";\n name \"Assess the alarm\";\n };\n sa {\n description \"\";\n name \"Assess the alarm\";\n };\n };\n kind Sequence;\n oa @oa_assess_step;\n sa @sa_assess_step;\n}\n\ntrace trace_oa_assess_then_decide \"Continue ↔ Continue\" id \"a5c1eb01-a95f-5f7a-9742-7f201493d7aa\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_assess_then_decide;\n sa @sa_assess_then_decide;\n}\n\ntrace trace_oa_assessment_action \"Assess pressure alarm ↔ Assess pressure alarm\" id \"3a33de40-20a3-5252-899c-c12dc35e9783\" {\n baseline {\n oa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n };\n kind Sequence;\n oa @oa_assessment_action;\n sa @sa_assessment_action;\n}\n\ntrace trace_oa_assessment_delivery \"Chain involvement: Assess an alarm ↔ Chain involvement: Assess an alarm\" id \"5b96bfed-63e2-5d7f-b882-91e8b81f8efe\" {\n baseline {\n oa {\n description \"\";\n name \"Chain involvement: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Chain involvement: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_assessment_delivery;\n sa @sa_assessment_delivery;\n}\n\ntrace trace_oa_assessment_procedure \"Assess an alarm procedure ↔ Assess an alarm procedure\" id \"6ca4c78a-a5f2-5470-b401-732f5a8825d0\" {\n baseline {\n oa {\n description \"\";\n name \"Assess an alarm procedure\";\n };\n sa {\n description \"\";\n name \"Assess an alarm procedure\";\n };\n };\n kind Sequence;\n oa @oa_assessment_procedure;\n sa @sa_assessment_procedure;\n}\n\ntrace trace_oa_assessment_support \"Capability involvement: Assess an alarm ↔ Capability involvement: Assess an alarm\" id \"6e13cf86-7242-5e33-8912-b037cf6e8c87\" {\n baseline {\n oa {\n description \"\";\n name \"Capability involvement: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Capability involvement: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_assessment_support;\n sa @sa_assessment_support;\n}\n\ntrace trace_oa_call \"Request valve repair ↔ Request valve repair\" id \"f0cc86e5-f8fd-5091-a40d-dbfb6515072f\" {\n baseline {\n oa {\n description \"\";\n name \"Request valve repair\";\n };\n sa {\n description \"\";\n name \"Request valve repair\";\n };\n };\n kind Scenario;\n oa @oa_call;\n sa @sa_call;\n}\n\ntrace trace_oa_caller \"Controller ↔ Controller\" id \"241dfdac-2450-5704-a4cb-9f1047db1b6d\" {\n baseline {\n oa {\n description \"\";\n name \"Controller\";\n };\n sa {\n description \"\";\n name \"Controller\";\n };\n };\n kind Scenario;\n oa @oa_caller;\n sa @sa_caller;\n}\n\ntrace trace_oa_confirm \"Confirm safe pressure ↔ Confirm safe pressure\" id \"d7773ff5-cef5-50c1-8f9d-c5659115e1f0\" {\n baseline {\n oa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n };\n oa @oa_confirm;\n sa @sa_confirm;\n}\n\ntrace trace_oa_confirm_allocation \"Allocation: Confirm safe pressure ↔ Allocation: Confirm safe pressure\" id \"2fdcbc6f-526e-5a4e-bde5-314cf0cf3ef3\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Allocation: Confirm safe pressure\";\n };\n };\n kind Manual;\n oa @oa_confirm_allocation;\n sa @sa_confirm_allocation;\n}\n\ntrace trace_oa_confirm_path \"Continue ↔ Continue\" id \"a106d183-c239-5c9f-b1f1-141af19fc778\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_confirm_path;\n sa @sa_confirm_path;\n}\n\ntrace trace_oa_confirm_step \"Confirm safe pressure ↔ Confirm safe pressure\" id \"154abfce-c311-52d1-85d1-3f4c85203b26\" {\n baseline {\n oa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n };\n kind Sequence;\n oa @oa_confirm_step;\n sa @sa_confirm_step;\n}\n\ntrace trace_oa_contact \"Technician service conversation ↔ Technician service conversation\" id \"c9d65349-3400-58eb-8a55-57fa02de4b67\" {\n baseline {\n oa {\n description \"\";\n name \"Technician service conversation\";\n };\n sa {\n description \"\";\n name \"Technician service conversation\";\n };\n };\n kind Exchange;\n oa @oa_contact;\n sa @sa_contact;\n}\n\ntrace trace_oa_contact_category \"Field contact ↔ Field contact\" id \"e96ff119-bb4d-5fd9-9ab7-2ede0d3fd418\" {\n baseline {\n oa {\n description \"\";\n name \"Field contact\";\n };\n sa {\n description \"\";\n name \"Field contact\";\n };\n };\n kind Manual;\n oa @oa_contact_category;\n sa @sa_contact_category;\n}\n\ntrace trace_oa_control \"Control room ↔ Pressure coordination service\" id \"aba528ea-e396-582a-bfba-f6e2212d391a\" {\n baseline {\n oa {\n description \"\";\n name \"Control room\";\n };\n sa {\n description \"\";\n name \"Pressure coordination service\";\n };\n };\n kind Participant;\n oa @oa_control;\n sa @sa_control;\n}\n\ntrace trace_oa_conversation \"Repair request and measured reply ↔ Repair request and measured reply\" id \"3694c752-ba80-5702-a7d7-9cc66b6b01d8\" {\n baseline {\n oa {\n description \"\";\n name \"Repair request and measured reply\";\n };\n sa {\n description \"\";\n name \"Repair request and measured reply\";\n };\n };\n kind Scenario;\n oa @oa_conversation;\n sa @sa_conversation;\n}\n\ntrace trace_oa_decision \"Can a remote reset safely recover pressure? ↔ Can a remote reset safely recover pressure?\" id \"bbf6f1a1-cb2b-5632-8ec0-bf4b8ef1a941\" {\n baseline {\n oa {\n description \"\";\n name \"Can a remote reset safely recover pressure?\";\n };\n sa {\n description \"\";\n name \"Can a remote reset safely recover pressure?\";\n };\n };\n kind Sequence;\n oa @oa_decision;\n sa @sa_decision;\n}\n\ntrace trace_oa_field_merge \"Continue ↔ Continue\" id \"d32dd433-9c9e-5b57-9355-2970cc44a5f2\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_field_merge;\n sa @sa_field_merge;\n}\n\ntrace trace_oa_field_path \"else ↔ else\" id \"2e849e31-35aa-5aef-a989-26948038e52b\" {\n baseline {\n oa {\n description \"\";\n name \"else\";\n };\n sa {\n description \"\";\n name \"else\";\n };\n };\n kind Manual;\n oa @oa_field_path;\n sa @sa_field_path;\n}\n\ntrace trace_oa_field_procedure \"Field repair procedure ↔ Field repair procedure\" id \"bb72b2c2-6e32-5f65-9d8e-b33c1a65da37\" {\n baseline {\n oa {\n description \"\";\n name \"Field repair procedure\";\n };\n sa {\n description \"\";\n name \"Field repair procedure\";\n };\n };\n kind Sequence;\n oa @oa_field_procedure;\n sa @sa_field_procedure;\n}\n\ntrace trace_oa_full_scenario \"Restore supply through field repair ↔ Restore supply through field repair\" id \"435bae4c-cf6d-59f3-9eb5-d660ebeec079\" {\n baseline {\n oa {\n description \"\";\n name \"Restore supply through field repair\";\n };\n sa {\n description \"\";\n name \"Restore supply through field repair\";\n };\n };\n kind Scenario;\n oa @oa_full_scenario;\n sa @sa_full_scenario;\n}\n\ntrace trace_oa_high_pressure \"Pressure alarm detected ↔ Pressure alarm detected\" id \"b97749d4-f9ad-5fb7-9d78-bc60a74e98eb\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure alarm detected\";\n };\n sa {\n description \"\";\n name \"Pressure alarm detected\";\n };\n };\n kind State;\n oa @oa_high_pressure;\n sa @sa_high_pressure;\n}\n\ntrace trace_oa_include_triage \"Capability include: Assess an alarm ↔ Capability include: Assess an alarm\" id \"77073fcb-53aa-5f06-987a-0317cbb6971d\" {\n baseline {\n oa {\n description \"\";\n name \"Capability include: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Capability include: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_include_triage;\n sa @sa_include_triage;\n}\n\ntrace trace_oa_merge \"Recovery path completed ↔ Recovery path completed\" id \"0c9de959-d366-5765-98eb-450ea27bd316\" {\n baseline {\n oa {\n description \"\";\n name \"Recovery path completed\";\n };\n sa {\n description \"\";\n name \"Recovery path completed\";\n };\n };\n kind Sequence;\n oa @oa_merge;\n sa @sa_merge;\n}\n\ntrace trace_oa_mission \"Maintain safe water supply ↔ Maintain safe water supply\" id \"c987bd0f-87f6-5550-945d-2a42450fe1c5\" {\n baseline {\n oa {\n description \"\";\n name \"Maintain safe water supply\";\n };\n sa {\n description \"\";\n name \"Maintain safe water supply\";\n };\n };\n kind Mission;\n oa @oa_mission;\n sa @sa_mission;\n}\n\ntrace trace_oa_mission_delivery \"Mission capability: Restore a safe supply ↔ Mission capability: Restore a safe supply\" id \"aa164208-394d-5bc7-8462-b0043f682aad\" {\n baseline {\n oa {\n description \"\";\n name \"Mission capability: Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Mission capability: Restore a safe supply\";\n };\n };\n kind Manual;\n oa @oa_mission_delivery;\n sa @sa_mission_delivery;\n}\n\ntrace trace_oa_mission_participant \"Mission involvement: Maintain safe water supply ↔ Mission involvement: Maintain safe water supply\" id \"8d693d90-5017-56af-b056-d29d3cb46baa\" {\n baseline {\n oa {\n description \"\";\n name \"Mission involvement: Maintain safe water supply\";\n };\n sa {\n description \"\";\n name \"Mission involvement: Maintain safe water supply\";\n };\n };\n kind Manual;\n oa @oa_mission_participant;\n sa @sa_mission_participant;\n}\n\ntrace trace_oa_monitor \"Pressure supervision ↔ Pressure supervision\" id \"b53863a2-ed80-5f98-ad3c-50e1b821066d\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure supervision\";\n };\n sa {\n description \"\";\n name \"Pressure supervision\";\n };\n };\n kind State;\n oa @oa_monitor;\n sa @sa_monitor;\n}\n\ntrace trace_oa_monitor_initial \"Start ↔ Start\" id \"48d243f0-553f-507e-acb0-9474ae156b63\" {\n baseline {\n oa {\n description \"\";\n name \"Start\";\n };\n sa {\n description \"\";\n name \"Start\";\n };\n };\n kind State;\n oa @oa_monitor_initial;\n sa @sa_monitor_initial;\n}\n\ntrace trace_oa_monitor_region \"Supervision cycle ↔ Supervision cycle\" id \"208753e0-9151-50d8-86ca-29fc28eca80b\" {\n baseline {\n oa {\n description \"\";\n name \"Supervision cycle\";\n };\n sa {\n description \"\";\n name \"Supervision cycle\";\n };\n };\n kind State;\n oa @oa_monitor_region;\n sa @sa_monitor_region;\n}\n\ntrace trace_oa_monitoring \"Monitoring ↔ Monitoring\" id \"12ec320f-2e14-5a5a-8c6b-bd2b6471dae9\" {\n baseline {\n oa {\n description \"\";\n name \"Monitoring\";\n };\n sa {\n description \"\";\n name \"Monitoring\";\n };\n };\n kind State;\n oa @oa_monitoring;\n sa @sa_monitoring;\n}\n\ntrace trace_oa_normal_transition \"State transition: Monitoring ↔ State transition: Monitoring\" id \"c47cf0b4-fe15-5175-bd62-5292e43adc39\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n sa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n };\n kind Manual;\n oa @oa_normal_transition;\n sa @sa_normal_transition;\n}\n\ntrace trace_oa_outer_controller \"Controller ↔ Controller\" id \"fd195498-dbba-523b-94d0-49f3b9531a3e\" {\n baseline {\n oa {\n description \"\";\n name \"Controller\";\n };\n sa {\n description \"\";\n name \"Controller\";\n };\n };\n kind Scenario;\n oa @oa_outer_controller;\n sa @sa_outer_controller;\n}\n\ntrace trace_oa_outer_technician \"Technician ↔ Technician\" id \"c132a0df-1270-55a8-ac4e-6e5075823dc1\" {\n baseline {\n oa {\n description \"\";\n name \"Technician\";\n };\n sa {\n description \"\";\n name \"Technician\";\n };\n };\n kind Scenario;\n oa @oa_outer_technician;\n sa @sa_outer_technician;\n}\n\ntrace trace_oa_pressure \"Measured pressure ↔ Measured pressure\" id \"d9d47371-e98d-5d29-9df7-4de2d28a5c73\" {\n baseline {\n oa {\n description \"\";\n name \"Measured pressure\";\n };\n sa {\n description \"\";\n name \"Measured pressure\";\n };\n };\n kind Item;\n oa @oa_pressure;\n sa @sa_pressure;\n}\n\ntrace trace_oa_pressure_parameter \"Pressure before / after repair ↔ Pressure before / after repair\" id \"0d905fbb-5b3c-56f0-9f11-a27091901eb0\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure before / after repair\";\n };\n sa {\n description \"\";\n name \"Pressure before / after repair\";\n };\n };\n kind Item;\n oa @oa_pressure_parameter;\n sa @sa_pressure_parameter;\n}\n\ntrace trace_oa_remote_merge \"Continue ↔ Continue\" id \"1b788e74-36b2-5c17-a936-642dbe51ca3c\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_remote_merge;\n sa @sa_remote_merge;\n}\n\ntrace trace_oa_remote_path \"remote reset is authorized ↔ remote reset is authorized\" id \"eee79ec1-41d7-5374-986e-995a56b9026f\" {\n baseline {\n oa {\n description \"\";\n name \"remote reset is authorized\";\n };\n sa {\n description \"\";\n name \"remote reset is authorized\";\n };\n };\n kind Manual;\n oa @oa_remote_path;\n sa @sa_remote_path;\n}\n\ntrace trace_oa_repair \"Repair valve in the field ↔ Repair valve in the field\" id \"b13452bb-1a55-5ad6-b6d9-a37fb34e8d13\" {\n baseline {\n oa {\n description \"\";\n name \"Repair valve in the field\";\n };\n sa {\n description \"\";\n name \"Repair valve in the field\";\n };\n };\n oa @oa_repair;\n sa @sa_repair;\n}\n\ntrace trace_oa_repair_allocation \"Allocation: Repair valve in the field ↔ Allocation: Repair valve in the field\" id \"3714d547-006f-5c3a-97f8-175ccc23d994\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Repair valve in the field\";\n };\n sa {\n description \"\";\n name \"Allocation: Repair valve in the field\";\n };\n };\n kind Manual;\n oa @oa_repair_allocation;\n sa @sa_repair_allocation;\n}\n\ntrace trace_oa_repair_operation \"Valve repair ↔ Valve repair\" id \"cf92cedf-ea1a-510c-9bc5-89c16d60e8d2\" {\n baseline {\n oa {\n description \"\";\n name \"Valve repair\";\n };\n sa {\n description \"\";\n name \"Valve repair\";\n };\n };\n kind Item;\n oa @oa_repair_operation;\n sa @sa_repair_operation;\n}\n\ntrace trace_oa_repair_report \"Report repair result ↔ Report repair result\" id \"424eca39-1c29-5a2f-b9ee-33dd018926aa\" {\n baseline {\n oa {\n description \"\";\n name \"Report repair result\";\n };\n sa {\n description \"\";\n name \"Report repair result\";\n };\n };\n kind Exchange;\n oa @oa_repair_report;\n sa @sa_repair_report;\n}\n\ntrace trace_oa_repair_request \"Request field repair ↔ Request field repair\" id \"da8efc3c-78df-5b10-b2e5-1e28d6d99e86\" {\n baseline {\n oa {\n description \"\";\n name \"Request field repair\";\n };\n sa {\n description \"\";\n name \"Request field repair\";\n };\n };\n kind Exchange;\n oa @oa_repair_request;\n sa @sa_repair_request;\n}\n\ntrace trace_oa_repair_step \"Repair the valve ↔ Repair the valve\" id \"ac3aa6b0-568e-5a3f-963a-172aa3cfc7a4\" {\n baseline {\n oa {\n description \"\";\n name \"Repair the valve\";\n };\n sa {\n description \"\";\n name \"Repair the valve\";\n };\n };\n kind Sequence;\n oa @oa_repair_step;\n sa @sa_repair_step;\n}\n\ntrace trace_oa_repair_then_report \"Sequence link: Report the measured result ↔ Sequence link: Report the measured result\" id \"f8d34715-1dc8-504b-acdf-78b770aad1e8\" {\n baseline {\n oa {\n description \"\";\n name \"Sequence link: Report the measured result\";\n };\n sa {\n description \"\";\n name \"Sequence link: Report the measured result\";\n };\n };\n kind Manual;\n oa @oa_repair_then_report;\n sa @sa_repair_then_report;\n}\n\ntrace trace_oa_repair_traffic \"Repair work exchanges ↔ Repair work exchanges\" id \"3e7bde54-f9c1-549f-9e5b-2ce1ecb685a7\" {\n baseline {\n oa {\n description \"\";\n name \"Repair work exchanges\";\n };\n sa {\n description \"\";\n name \"Repair work exchanges\";\n };\n };\n kind Manual;\n oa @oa_repair_traffic;\n sa @sa_repair_traffic;\n}\n\ntrace trace_oa_reply \"Return pressure after repair ↔ Return pressure after repair\" id \"595b5729-ccd9-5291-b5d9-30d8c8bd9dfa\" {\n baseline {\n oa {\n description \"\";\n name \"Return pressure after repair\";\n };\n sa {\n description \"\";\n name \"Return pressure after repair\";\n };\n };\n kind Scenario;\n oa @oa_reply;\n sa @sa_reply;\n}\n\ntrace trace_oa_report_step \"Report the measured result ↔ Report the measured result\" id \"e63b14d2-f408-56a2-aec4-be20cf4ace73\" {\n baseline {\n oa {\n description \"\";\n name \"Report the measured result\";\n };\n sa {\n description \"\";\n name \"Report the measured result\";\n };\n };\n kind Sequence;\n oa @oa_report_step;\n sa @sa_report_step;\n}\n\ntrace trace_oa_request_step \"Request the field repair ↔ Request the field repair\" id \"ad697c00-07d9-5799-89b3-2c78da8dff4d\" {\n baseline {\n oa {\n description \"\";\n name \"Request the field repair\";\n };\n sa {\n description \"\";\n name \"Request the field repair\";\n };\n };\n kind Sequence;\n oa @oa_request_step;\n sa @sa_request_step;\n}\n\ntrace trace_oa_request_then_repair \"Sequence link: Repair the valve ↔ Sequence link: Repair the valve\" id \"f2b7050c-629d-533f-b873-bffc33e072f7\" {\n baseline {\n oa {\n description \"\";\n name \"Sequence link: Repair the valve\";\n };\n sa {\n description \"\";\n name \"Sequence link: Repair the valve\";\n };\n };\n kind Manual;\n oa @oa_request_then_repair;\n sa @sa_request_then_repair;\n}\n\ntrace trace_oa_reset \"Reset valve remotely ↔ Reset valve remotely\" id \"82a5be1a-92a8-578d-9448-086062a20d8f\" {\n baseline {\n oa {\n description \"\";\n name \"Reset valve remotely\";\n };\n sa {\n description \"\";\n name \"Reset valve remotely\";\n };\n };\n oa @oa_reset;\n sa @sa_reset;\n}\n\ntrace trace_oa_reset_allocation \"Allocation: Reset valve remotely ↔ Allocation: Reset valve remotely\" id \"98ef05b5-5381-5d35-a433-ebab55e9f382\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Reset valve remotely\";\n };\n sa {\n description \"\";\n name \"Allocation: Reset valve remotely\";\n };\n };\n kind Manual;\n oa @oa_reset_allocation;\n sa @sa_reset_allocation;\n}\n\ntrace trace_oa_reset_step \"Try the authorized remote reset ↔ Try the authorized remote reset\" id \"ff84fc06-6f99-5cf3-b73d-236e9eff98a3\" {\n baseline {\n oa {\n description \"\";\n name \"Try the authorized remote reset\";\n };\n sa {\n description \"\";\n name \"Try the authorized remote reset\";\n };\n };\n kind Sequence;\n oa @oa_reset_step;\n sa @sa_reset_step;\n}\n\ntrace trace_oa_responder \"Technician ↔ Technician\" id \"c5051628-b7af-5fb1-a014-bb60a0b46e03\" {\n baseline {\n oa {\n description \"\";\n name \"Technician\";\n };\n sa {\n description \"\";\n name \"Technician\";\n };\n };\n kind Scenario;\n oa @oa_responder;\n sa @sa_responder;\n}\n\ntrace trace_oa_response \"Handle a pressure alarm ↔ Handle a pressure alarm\" id \"d3626818-4846-5893-9c02-3407cdba7f3c\" {\n baseline {\n oa {\n description \"\";\n name \"Handle a pressure alarm\";\n };\n sa {\n description \"\";\n name \"Handle a pressure alarm\";\n };\n };\n kind Sequence;\n oa @oa_response;\n sa @sa_response;\n}\n\ntrace trace_oa_response_delivery \"Chain involvement: Restore a safe supply ↔ Chain involvement: Restore a safe supply\" id \"70c90b0c-85ce-574a-a217-f0d19fad30e1\" {\n baseline {\n oa {\n description \"\";\n name \"Chain involvement: Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Chain involvement: Restore a safe supply\";\n };\n };\n kind Manual;\n oa @oa_response_delivery;\n sa @sa_response_delivery;\n}\n\ntrace trace_oa_restore \"Restore a safe supply ↔ Restore a safe supply\" id \"0fbef164-b5d3-58ba-ba41-54d0e63709ab\" {\n baseline {\n oa {\n description \"\";\n name \"Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Restore a safe supply\";\n };\n };\n kind Capability;\n oa @oa_restore;\n sa @sa_restore;\n}\n\ntrace trace_oa_restore_work \"Restore safe pressure ↔ Restore safe pressure\" id \"82cca563-9d5d-5479-aa1a-9db03e9674d1\" {\n baseline {\n oa {\n description \"\";\n name \"Restore safe pressure\";\n };\n sa {\n description \"\";\n name \"Restore safe pressure\";\n };\n };\n oa @oa_restore_work;\n sa @sa_restore_work;\n}\n\ntrace trace_oa_start_monitoring \"State transition: Monitoring ↔ State transition: Monitoring\" id \"07a7b82a-b5a7-5737-abfa-09e422f7420e\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n sa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n };\n kind Manual;\n oa @oa_start_monitoring;\n sa @sa_start_monitoring;\n}\n\ntrace trace_oa_technician \"Field technician ↔ Field technician\" id \"d47d3c36-50fb-5189-b801-d6fd1694bd49\" {\n baseline {\n oa {\n description \"\";\n name \"Field technician\";\n };\n sa {\n description \"\";\n name \"Field technician\";\n };\n };\n kind Participant;\n oa @oa_technician;\n sa @sa_technician;\n}\n\ntrace trace_oa_triage \"Assess an alarm ↔ Assess an alarm\" id \"6acd072d-431e-5881-ab20-1813b4fda0c5\" {\n baseline {\n oa {\n description \"\";\n name \"Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Assess an alarm\";\n };\n };\n kind Capability;\n oa @oa_triage;\n sa @sa_triage;\n}\n\ntrace trace_oa_use_conversation \"Use the reviewed repair conversation ↔ Use the reviewed repair conversation\" id \"f5733d3f-eee3-5cf7-a422-5edd2054d6a6\" {\n baseline {\n oa {\n description \"\";\n name \"Use the reviewed repair conversation\";\n };\n sa {\n description \"\";\n name \"Use the reviewed repair conversation\";\n };\n };\n kind Scenario;\n oa @oa_use_conversation;\n sa @sa_use_conversation;\n}\n\ntrace trace_oa_use_field \"Use the field repair procedure ↔ Use the field repair procedure\" id \"7a6b4b9c-4220-546a-a752-1587c2881fe1\" {\n baseline {\n oa {\n description \"\";\n name \"Use the field repair procedure\";\n };\n sa {\n description \"\";\n name \"Use the field repair procedure\";\n };\n };\n kind Sequence;\n oa @oa_use_field;\n sa @sa_use_field;\n}\n\ntrace trace_oa_waiting \"Awaiting repair ↔ Awaiting repair\" id \"0754be23-e4b8-53bc-b03c-89c2dbd80361\" {\n baseline {\n oa {\n description \"\";\n name \"Awaiting repair\";\n };\n sa {\n description \"\";\n name \"Awaiting repair\";\n };\n };\n kind State;\n oa @oa_waiting;\n sa @sa_waiting;\n}\n\n", "oa/capabilities.arcadia": "oa_mission oa_mission \"Maintain safe water supply\" id \"c9c61f50-06e0-5d17-973d-dcc57cd5cc90\" {\n}\n\noa_capability oa_restore \"Restore a safe supply\" id \"3dfee23a-148b-5cec-ad2d-b774e84ea5bb\" {\n}\n\noa_capability oa_triage \"Assess an alarm\" id \"6a30b763-cc51-546d-907f-5c63657cfd03\" {\n}\n\nmission_capability oa_mission_delivery \"Mission capability: Restore a safe supply\" id \"1f8b1898-65f6-5360-99cf-b78a71bd50ec\" {\n source @oa_mission;\n target @oa_restore;\n}\n\ncapability_include oa_include_triage \"Capability include: Assess an alarm\" id \"e21d9a54-ae8e-5618-a4f8-67ee22b92638\" {\n source @oa_restore;\n target @oa_triage;\n}\n\n", "oa/model.arcadia": "oa_exchange_category oa_contact_category \"Field contact\" id \"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771\" {\n exchanges [@oa_contact];\n family \"Participant\";\n}\n\noa_event oa_high_pressure \"Pressure alarm detected\" id \"65d6b8d6-271a-5c84-8b42-abbe310c955e\" {\n body {\n Change {\n expression \"measured_pressure > operating_limit\";\n };\n };\n}\n\noa_exchange_category oa_repair_traffic \"Repair work exchanges\" id \"9349b353-53f2-56f8-b571-a05b09335cdf\" {\n exchanges [@oa_repair_request, @oa_repair_report];\n}\n\n", "oa/participants.arcadia": "oa_entity oa_control \"Control room\" id \"32aa9940-df6e-5a12-b9bd-6337e2d2ed22\" {\n}\n\noa_actor oa_technician \"Field technician\" id \"e07c3952-4a1a-5cc7-b7d5-03a01101ce49\" {\n}\n\nallocation oa_assess_allocation \"Allocation: Assess pressure alarm\" id \"594c61cd-94e0-5c07-890d-edfd520d7df9\" {\n source @oa_control;\n target @oa_assess;\n}\n\nallocation oa_confirm_allocation \"Allocation: Confirm safe pressure\" id \"bfd4326e-ea65-5269-b5e6-e063a355d1e9\" {\n source @oa_control;\n target @oa_confirm;\n}\n\ncommunication_mean oa_contact \"Technician service conversation\" id \"27b47887-baf0-518b-bf87-f5acbf7d0b93\" {\n items [@oa_repair_operation];\n source @oa_control;\n target @oa_technician;\n}\n\nexchange_allocation oa_report_carriage \"Exchange allocation: Report repair result\" id \"4549d3fa-5ab9-52a9-b4f9-3a78fc9d625a\" {\n source @oa_contact;\n target @oa_repair_report;\n}\n\nexchange_allocation oa_request_carriage \"Exchange allocation: Request field repair\" id \"094b888c-450c-5c4f-971a-7d75db059574\" {\n source @oa_contact;\n target @oa_repair_request;\n}\n\nmission_involvement oa_mission_participant \"Mission involvement: Maintain safe water supply\" id \"0c4c9e58-ff32-5c00-b82a-d408a4be0183\" {\n source @oa_control;\n target @oa_mission;\n}\n\nallocation oa_reset_allocation \"Allocation: Reset valve remotely\" id \"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a\" {\n source @oa_control;\n target @oa_reset;\n}\n\nallocation oa_repair_allocation \"Allocation: Repair valve in the field\" id \"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2\" {\n source @oa_technician;\n target @oa_repair;\n}\n\n", "oa/types.arcadia": "oa_data_type oa_pressure \"Measured pressure\" id \"e7824764-5db9-5384-8198-2fbaea2b10b2\" {\n definition {\n Real {\n maximum 600.0;\n minimum 0.0;\n };\n };\n unit \"kPa\";\n}\n\noa_exchange_item oa_repair_operation \"Valve repair\" id \"d736c7d6-d369-550a-8ba4-dae223e40bb3\" {\n mechanism Operation;\n}\n\noa_data_field oa_pressure_parameter \"Pressure before / after repair\" id \"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7\" {\n direction InOut;\n parent @oa_repair_operation;\n type_ref {\n Named @oa_pressure;\n };\n}\n\n", "sa/capabilities.arcadia": "sa_mission sa_mission \"Maintain safe water supply\" id \"5ad034b1-084d-5273-9e70-971671766132\" {\n}\n\nsa_capability sa_restore \"Restore a safe supply\" id \"81259051-370a-512d-a3b5-6420a6f933b6\" {\n}\n\nsa_capability sa_triage \"Assess an alarm\" id \"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f\" {\n}\n\nmission_capability sa_mission_delivery \"Mission capability: Restore a safe supply\" id \"a0902e0f-3d18-576a-9aca-975a136dfdd7\" {\n source @sa_mission;\n target @sa_restore;\n}\n\ncapability_include sa_include_triage \"Capability include: Assess an alarm\" id \"f3fe7690-734a-5877-8b57-a6599a4033c4\" {\n source @sa_restore;\n target @sa_triage;\n}\n\n", "sa/model.arcadia": "sa_exchange_category sa_contact_category \"Field contact\" id \"781cbe75-410f-5cc5-aeb8-a43491f77b99\" {\n exchanges [@sa_contact];\n family \"Participant\";\n}\n\nsa_event sa_high_pressure \"Pressure alarm detected\" id \"01490fa8-2f01-5ac8-9722-d55d45414379\" {\n body {\n Change {\n expression \"measured_pressure > operating_limit\";\n };\n };\n}\n\nsa_exchange_category sa_repair_traffic \"Repair work exchanges\" id \"a9a47e48-100c-57a8-95f0-7fe24da94f94\" {\n exchanges [@sa_repair_request, @sa_repair_report];\n}\n\n", "sa/participants.arcadia": "sa_system sa_control \"Pressure coordination service\" id \"435bf87c-73fd-5e4d-978a-4c471bc9eaf0\" {\n}\n\nsa_port sa_control_port \"Repair service client\" id \"98d411e7-7c65-5c3f-b543-8bf0f2522ea2\" {\n contract {\n Component {\n kind Standard;\n orientation Unset;\n };\n };\n description \"Explicitly chosen Standard component port for the repair service.\";\n parent @sa_control;\n}\n\nsa_actor sa_technician \"Field technician\" id \"c05b9422-b9da-5de5-b21d-07ad23bd2b8a\" {\n}\n\nsa_port sa_technician_port \"Repair service provider\" id \"e6d69cbd-99d7-596b-bbe3-dada6118a600\" {\n contract {\n Component {\n kind Standard;\n orientation Unset;\n };\n };\n description \"Explicitly chosen Standard component port for the repair service.\";\n parent @sa_technician;\n}\n\nallocation sa_assess_allocation \"Allocation: Assess pressure alarm\" id \"9b9356d7-2db2-5a94-a47e-ea892cf02afe\" {\n source @sa_control;\n target @sa_assess;\n}\n\nallocation sa_audit_allocation \"Allocation: Audit pressure thresholds\" id \"1b245065-7242-5d81-8472-aaeb932054c9\" {\n source @sa_control;\n target @sa_audit_thresholds;\n}\n\nallocation sa_confirm_allocation \"Allocation: Confirm safe pressure\" id \"b76bf8de-2fa4-563f-a540-dd30f30e6c49\" {\n source @sa_control;\n target @sa_confirm;\n}\n\ninterface_requirement sa_client_requires \"Interface requirement: Valve repair service\" id \"4f85337b-f6eb-533c-a45a-9a5d1d9567ca\" {\n source @sa_control_port;\n target @sa_repair_interface;\n}\n\nboundary_exchange sa_contact \"Technician service conversation\" id \"63009b5f-539e-5914-b630-ec6b7fefb4d5\" {\n items [@sa_repair_operation];\n oriented false;\n source @sa_control_port;\n target @sa_technician_port;\n}\n\nexchange_allocation sa_report_carriage \"Exchange allocation: Report repair result\" id \"ff9897b3-a23a-5994-a5b3-99a5b4d34ceb\" {\n source @sa_contact;\n target @sa_repair_report;\n}\n\nexchange_allocation sa_request_carriage \"Exchange allocation: Request field repair\" id \"4c4c4851-5a3d-5bb9-94df-b19f9cf39819\" {\n source @sa_contact;\n target @sa_repair_request;\n}\n\nport_allocation sa_port_report_in \"Port allocation: Report repair result input\" id \"568c5c01-de21-52a2-83bd-afdddc158085\" {\n source @sa_control_port;\n target @sa_repair_report_in;\n}\n\nport_allocation sa_port_request_out \"Port allocation: Request field repair output\" id \"55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9\" {\n source @sa_control_port;\n target @sa_repair_request_out;\n}\n\nmission_involvement sa_mission_participant \"Mission involvement: Maintain safe water supply\" id \"1c1e5634-ba8c-591f-b143-90a27cdc6cd2\" {\n source @sa_control;\n target @sa_mission;\n}\n\nallocation sa_reset_allocation \"Allocation: Reset valve remotely\" id \"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3\" {\n source @sa_control;\n target @sa_reset;\n}\n\nallocation sa_repair_allocation \"Allocation: Repair valve in the field\" id \"725f2e1b-aa2c-5615-9b1f-28da178168fa\" {\n source @sa_technician;\n target @sa_repair;\n}\n\nport_allocation sa_port_report_out \"Port allocation: Report repair result output\" id \"e53b7a40-e8a3-5b3f-826d-c2b5c164a84a\" {\n source @sa_technician_port;\n target @sa_repair_report_out;\n}\n\nport_allocation sa_port_request_in \"Port allocation: Request field repair input\" id \"09eaa992-4cdf-5ea3-b748-f10fd74b8cba\" {\n source @sa_technician_port;\n target @sa_repair_request_in;\n}\n\ninterface_provision sa_provider_provides \"Interface provision: Valve repair service\" id \"55f89fbf-aa3c-5ae1-95ef-ac676f9c1ada\" {\n source @sa_technician_port;\n target @sa_repair_interface;\n}\n\n", "sa/types.arcadia": "sa_data_type sa_pressure \"Measured pressure\" id \"87d0a95b-af1b-5352-b753-e4c6533671a5\" {\n definition {\n Real {\n maximum 600.0;\n minimum 0.0;\n };\n };\n unit \"kPa\";\n}\n\nsa_interface sa_repair_interface \"Valve repair service\" id \"a4b8942e-a975-5f88-ad14-8f38c345baac\" {\n}\n\nsa_exchange_item sa_repair_operation \"Valve repair\" id \"a962fc5e-3ab0-5296-8b0d-fd84633f9218\" {\n mechanism Operation;\n}\n\nsa_data_field sa_pressure_parameter \"Pressure before / after repair\" id \"bb12ba5d-aab5-5a1b-99de-c767f5365b57\" {\n direction InOut;\n parent @sa_repair_operation;\n type_ref {\n Named @sa_pressure;\n };\n}\n\ninterface_item_allocation sa_repair_interface_item \"Repair operation contract\" id \"f074e041-23cf-54ad-af9c-f171e30621e7\" {\n acquisition Accept;\n source @sa_repair_interface;\n target @sa_repair_operation;\n transmission Synchronous;\n}\n\n", "views/diagram_oa_allocation_view.arcadia": "diagram oa_allocation_view \"1 · OA responsibility and repair traffic\" id \"103ea62c-ac56-5827-94e7-cf09bca96ccc\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n projection Allocation;\n}\n\nnode oa_allocation_view_oa_assess id \"5ae1c46d-59a3-50fd-8cc3-b292df21f951\" {\n diagram @oa_allocation_view;\n element @oa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_confirm id \"edd74060-ac61-5450-a57c-a6577daa5d50\" {\n diagram @oa_allocation_view;\n element @oa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_control id \"3191e05c-1c7f-5f0e-beb0-5f3bded54c48\" {\n diagram @oa_allocation_view;\n element @oa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_repair id \"202ebe37-ddb4-5099-8ce9-ec3e895ab9e9\" {\n diagram @oa_allocation_view;\n element @oa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_reset id \"7066f78c-9736-5349-b94a-0587331b980e\" {\n diagram @oa_allocation_view;\n element @oa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_technician id \"d27f28ef-f10a-5355-9a05-6f2fd39b7de6\" {\n diagram @oa_allocation_view;\n element @oa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "views/diagram_sa_allocation_view.arcadia": "diagram sa_allocation_view \"2 · SA service boundary and functions\" id \"35d3c24b-289e-59e5-a610-8333e2c6a4bb\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Allocation;\n}\n\nnode sa_allocation_view_sa_assess id \"60f6ad74-b69e-5aef-b832-f1bd60b903ae\" {\n diagram @sa_allocation_view;\n element @sa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_confirm id \"7e3ba36f-bc68-5520-bdb9-77083bb7bba2\" {\n diagram @sa_allocation_view;\n element @sa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_control id \"8345c76a-8d85-5c31-902e-ec1cd33ed4a3\" {\n diagram @sa_allocation_view;\n element @sa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_repair id \"34630a18-41b0-5fdd-bff4-ee86e93e8651\" {\n diagram @sa_allocation_view;\n element @sa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_reset id \"73406244-ebd7-5995-86c7-e17c73c50b32\" {\n diagram @sa_allocation_view;\n element @sa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_technician id \"f7225d1c-e506-505d-bb20-916950269d4b\" {\n diagram @sa_allocation_view;\n element @sa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "views/diagram_sa_capability_view.arcadia": "diagram sa_capability_view \"4 · SA mission and included capability\" id \"3e6ad194-61b5-584c-b0f0-a78a20af5781\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Capabilities;\n}\n\nnode sa_capability_view_sa_control id \"41ddb68b-bd2b-5f91-82eb-efde01157828\" {\n diagram @sa_capability_view;\n element @sa_control;\n position {\n x 60.0;\n y 60.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_mission id \"4b814335-bf98-5b68-85d5-ea549766517a\" {\n diagram @sa_capability_view;\n element @sa_mission;\n position {\n x 420.0;\n y 60.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_restore id \"d3bc13f9-7726-5280-83fe-63f391c45afb\" {\n diagram @sa_capability_view;\n element @sa_restore;\n position {\n x 420.0;\n y 260.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_triage id \"069a3fb3-077c-59d8-91da-27b0665143c7\" {\n diagram @sa_capability_view;\n element @sa_triage;\n position {\n x 800.0;\n y 260.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "views/diagram_sa_service_view.arcadia": "diagram sa_service_view \"3 · SA service conversation only\" id \"50af4c9b-93ce-5ff5-a1f8-7a81eb97e779\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Allocation;\n view_options {\n exchange_labels \"NameAndItems\";\n participant_categories {\n Any [@sa_contact_category];\n };\n work_categories {\n Any [];\n };\n };\n}\n\nnode sa_service_view_sa_assess id \"439f1e45-e5ed-567c-978b-4c93ef267db1\" {\n diagram @sa_service_view;\n element @sa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_confirm id \"6f138672-149b-5f88-ab07-7fc413a42262\" {\n diagram @sa_service_view;\n element @sa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_control id \"f53d4352-b042-56a6-8b3e-c51cd27254f9\" {\n diagram @sa_service_view;\n element @sa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_repair id \"ae36489d-6ec8-5f1c-b603-8b497227efba\" {\n diagram @sa_service_view;\n element @sa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_reset id \"d52da4e6-40b7-5dbc-84fb-80c443711c69\" {\n diagram @sa_service_view;\n element @sa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_technician id \"40210589-69f7-5209-b329-10bb83cf615c\" {\n diagram @sa_service_view;\n element @sa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "views/diagram_sa_state_view.arcadia": "diagram sa_state_view \"5 · SA pressure supervision\" id \"30d5baf9-6581-5cb6-846a-bcaa1e6cce63\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection {\n StateMachine {\n machine @sa_monitor;\n };\n };\n}\n\nnode sa_state_view_sa_monitor id \"a676fbb9-0833-59a8-98cf-a10d8f4b7434\" {\n diagram @sa_state_view;\n element @sa_monitor;\n position {\n x 30.0;\n y 30.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitor_initial id \"5e2326a0-0f6c-5f8d-8a21-fdded18a9281\" {\n diagram @sa_state_view;\n element @sa_monitor_initial;\n position {\n x 100.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitor_region id \"55a74f91-2025-5001-8db8-9566b1dbe783\" {\n diagram @sa_state_view;\n element @sa_monitor_region;\n position {\n x 70.0;\n y 95.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitoring id \"b3af7b04-5a45-5b82-ab69-7eada4b876f0\" {\n diagram @sa_state_view;\n element @sa_monitoring;\n position {\n x 220.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_waiting id \"57acbb71-ca86-57fc-ae90-42dad195f0e0\" {\n diagram @sa_state_view;\n element @sa_waiting;\n position {\n x 650.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "oa/activities/activity_oa_restore_work.arcadia": "oa_activity oa_restore_work \"Restore safe pressure\" id \"1b91f8a7-0bdb-514e-b1cd-955658e09927\" {\n}\n\noa_activity oa_assess \"Assess pressure alarm\" id \"61f7bbfb-74a4-5540-9182-2583dfb27a49\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_confirm \"Confirm safe pressure\" id \"727c0b5c-8db6-5eb7-83d6-735519c5949f\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_repair \"Repair valve in the field\" id \"a21465af-05f3-5fb5-8983-de26932422fb\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_reset \"Reset valve remotely\" id \"d0c8be87-d238-503a-a549-7558a210507f\" {\n parent @oa_restore_work;\n}\n\ncapability_involvement oa_assessment_support \"Capability involvement: Assess an alarm\" id \"ffdbfcd0-d423-5707-a880-0dfbe1400f72\" {\n source @oa_assess;\n target @oa_triage;\n}\n\ninteraction oa_repair_request \"Request field repair\" id \"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d\" {\n items [@oa_repair_operation];\n source @oa_assess;\n target @oa_repair;\n}\n\ninteraction oa_repair_report \"Report repair result\" id \"b436d0b3-c824-5a96-af6b-2c269816d1cc\" {\n items [@oa_repair_operation];\n source @oa_repair;\n target @oa_confirm;\n}\n\n", "oa/behavior/process_oa_assessment_procedure.arcadia": "oa_process oa_assessment_procedure \"Assess an alarm procedure\" id \"022d3cfa-bbaf-5e13-924a-8e55099b8745\" {\n steps [@oa_assessment_action];\n}\n\noa_occurrence oa_assessment_action \"Assess pressure alarm\" id \"942975b8-0bef-5ae8-9fcb-c37497833fb0\" {\n body {\n Action {\n action @oa_assess;\n };\n };\n parent @oa_assessment_procedure;\n}\n\nchain_involvement oa_assessment_delivery \"Chain involvement: Assess an alarm\" id \"628cb4fc-fe63-5f6b-b364-6268f26b5740\" {\n source @oa_assessment_procedure;\n target @oa_triage;\n}\n\n", "oa/behavior/process_oa_field_procedure.arcadia": "oa_process oa_field_procedure \"Field repair procedure\" id \"5d3af417-244c-54bb-9588-16daedda4e1f\" {\n steps [@oa_request_step, @oa_repair_step, @oa_report_step];\n}\n\noa_occurrence oa_repair_step \"Repair the valve\" id \"c59432fe-6092-5ee0-908d-9dbf39476471\" {\n body {\n Action {\n action @oa_repair;\n };\n };\n parent @oa_field_procedure;\n}\n\noa_occurrence oa_report_step \"Report the measured result\" id \"df2fd3f8-6bc2-5380-a13f-36643ed35ac7\" {\n body {\n Exchange {\n exchange @oa_repair_report;\n };\n };\n parent @oa_field_procedure;\n}\n\noa_occurrence oa_request_step \"Request the field repair\" id \"5ba8079c-2dbe-5e98-ae82-2b60c6020a02\" {\n body {\n Exchange {\n exchange @oa_repair_request;\n };\n };\n parent @oa_field_procedure;\n}\n\nsequence_link oa_repair_then_report \"Sequence link: Report the measured result\" id \"c8196d35-2168-5fef-8b03-ba0d139bc00f\" {\n source @oa_repair_step;\n target @oa_report_step;\n}\n\nsequence_link oa_request_then_repair \"Sequence link: Repair the valve\" id \"3f54d890-4ca5-5e36-873b-abb5c92d578c\" {\n source @oa_request_step;\n target @oa_repair_step;\n}\n\n", "oa/behavior/process_oa_response.arcadia": "oa_process oa_response \"Handle a pressure alarm\" id \"58bae2b0-f560-50f2-818d-19091d22d18a\" {\n steps [@oa_assess_step, @oa_decision, @oa_reset_step, @oa_use_field, @oa_merge, @oa_confirm_step];\n}\n\noa_occurrence oa_assess_step \"Assess the alarm\" id \"0b07b9ed-492d-57f6-b0b1-ce8a709238a7\" {\n body {\n SequenceReference {\n sequence @oa_assessment_procedure;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_confirm_step \"Confirm safe pressure\" id \"e00594a3-6122-5a6b-b3c2-ecb5506c741d\" {\n body {\n Action {\n action @oa_confirm;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_decision \"Can a remote reset safely recover pressure?\" id \"b280c6ca-e5f9-5424-a5c1-5676e01c2371\" {\n body {\n Control {\n kind Choice;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_merge \"Recovery path completed\" id \"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d\" {\n body {\n Control {\n kind Merge;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_reset_step \"Try the authorized remote reset\" id \"d2026fc2-74a8-5e22-9942-ff3eb68a3677\" {\n body {\n Action {\n action @oa_reset;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_use_field \"Use the field repair procedure\" id \"fc6763bf-a534-54bf-afcd-57ab285ff07d\" {\n body {\n SequenceReference {\n sequence @oa_field_procedure;\n };\n };\n parent @oa_response;\n}\n\nsequence_link oa_assess_then_decide \"Continue\" id \"109e2d6b-7e86-5934-93a5-fab56eced84e\" {\n source @oa_assess_step;\n target @oa_decision;\n}\n\nsequence_link oa_field_path \"else\" id \"c1adbbd0-a762-5ee3-8b9a-5c18af377771\" {\n guard \"else\";\n source @oa_decision;\n target @oa_use_field;\n}\n\nsequence_link oa_remote_path \"remote reset is authorized\" id \"76218d89-68fd-531d-b35b-90c5b769a5ef\" {\n guard \"remote reset is authorized\";\n source @oa_decision;\n target @oa_reset_step;\n}\n\nsequence_link oa_confirm_path \"Continue\" id \"229ee94f-d147-50f6-9769-b5bd0c03a084\" {\n source @oa_merge;\n target @oa_confirm_step;\n}\n\nsequence_link oa_remote_merge \"Continue\" id \"bac43d3b-910b-5bdc-be9b-f78cf973e1ed\" {\n source @oa_reset_step;\n target @oa_merge;\n}\n\nchain_involvement oa_response_delivery \"Chain involvement: Restore a safe supply\" id \"c7c248f8-28b8-55be-9023-0991d44021e3\" {\n source @oa_response;\n target @oa_restore;\n}\n\nsequence_link oa_field_merge \"Continue\" id \"c8593670-8906-530f-b6a2-3ada77a9c219\" {\n source @oa_use_field;\n target @oa_merge;\n}\n\n", "oa/behavior/scenario_oa_conversation.arcadia": "oa_scenario oa_conversation \"Repair request and measured reply\" id \"20472233-5ce6-5ffe-b4ad-0bdbccf3e423\" {\n context @oa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@oa_call, @oa_reply];\n viewpoint ParticipantInteraction;\n}\n\noa_occurrence oa_call \"Request valve repair\" id \"b97437c6-cd7a-5a05-b537-b30a17dd936a\" {\n body {\n Exchange {\n exchange @oa_contact;\n message_kind Call;\n receiver @oa_responder;\n sender @oa_caller;\n values [{\n expression \"420.0\";\n field @oa_pressure_parameter;\n }];\n };\n };\n parent @oa_conversation;\n}\n\noa_lifeline oa_caller \"Controller\" id \"41859a65-ded2-547b-ab03-14e2fa740cf9\" {\n parent @oa_conversation;\n represented @oa_control;\n}\n\noa_occurrence oa_reply \"Return pressure after repair\" id \"cc2d497a-fd15-5455-9ee5-e70eb95811d8\" {\n body {\n Exchange {\n exchange @oa_contact;\n message_kind Reply;\n receiver @oa_caller;\n reply_to @oa_call;\n sender @oa_responder;\n values [{\n expression \"320.0\";\n field @oa_pressure_parameter;\n }];\n };\n };\n parent @oa_conversation;\n}\n\noa_lifeline oa_responder \"Technician\" id \"fc81c5f0-0442-5b88-992b-e5b10f351c59\" {\n parent @oa_conversation;\n represented @oa_technician;\n}\n\n", "oa/behavior/scenario_oa_full_scenario.arcadia": "oa_scenario oa_full_scenario \"Restore supply through field repair\" id \"d6f881a4-95da-54e9-ad97-1b8965532629\" {\n context @oa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@oa_use_conversation];\n viewpoint ParticipantInteraction;\n}\n\noa_lifeline oa_outer_controller \"Controller\" id \"2011b3ac-614b-5a47-8891-7ff81965f425\" {\n parent @oa_full_scenario;\n represented @oa_control;\n}\n\noa_lifeline oa_outer_technician \"Technician\" id \"fffff882-78fd-5415-928d-c1ef7fac6576\" {\n parent @oa_full_scenario;\n represented @oa_technician;\n}\n\noa_occurrence oa_use_conversation \"Use the reviewed repair conversation\" id \"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5\" {\n body {\n ScenarioUse {\n bindings [{\n local @oa_outer_controller;\n referenced @oa_caller;\n }, {\n local @oa_outer_technician;\n referenced @oa_responder;\n }];\n scenario @oa_conversation;\n };\n };\n parent @oa_full_scenario;\n}\n\n", "oa/behavior/state_machine_oa_monitor.arcadia": "oa_state_machine oa_monitor \"Pressure supervision\" id \"1970608f-85d1-5234-ac86-5e2b0df27dc3\" {\n parent @oa_control;\n}\n\noa_region oa_monitor_region \"Supervision cycle\" id \"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7\" {\n parent @oa_monitor;\n}\n\noa_initial oa_monitor_initial \"Start\" id \"a7ffb869-9dde-5e76-b276-c719c5c143a9\" {\n parent @oa_monitor_region;\n}\n\noa_state oa_monitoring \"Monitoring\" id \"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae\" {\n parent @oa_monitor_region;\n}\n\noa_state oa_waiting \"Awaiting repair\" id \"58c15833-6e75-523a-b57f-a88f19f6d672\" {\n parent @oa_monitor_region;\n}\n\nstate_transition oa_start_monitoring \"State transition: Monitoring\" id \"2b00270c-79a5-52a5-af96-33346bea531b\" {\n source @oa_monitor_initial;\n target @oa_monitoring;\n}\n\nstate_transition oa_alarm_transition \"State transition: Awaiting repair\" id \"fbde9d5e-c7e9-55db-a2be-497345c491b3\" {\n source @oa_monitoring;\n target @oa_waiting;\n triggers [@oa_high_pressure];\n}\n\nstate_action oa_assess_on_entry \"Assess when repair is needed\" id \"7fa37e63-db65-5aa7-88f2-31ff4347a787\" {\n phase Entry;\n source @oa_waiting;\n target @oa_assess;\n}\n\nstate_transition oa_normal_transition \"State transition: Monitoring\" id \"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97\" {\n guard \"repair confirmed and pressure is safe\";\n source @oa_waiting;\n target @oa_monitoring;\n}\n\n", "sa/behavior/process_sa_assessment_procedure.arcadia": "sa_functional_chain sa_assessment_procedure \"Assess an alarm procedure\" id \"acd5a018-f559-5298-a40d-1cf6e1353e74\" {\n steps [@sa_assessment_action];\n}\n\nsa_occurrence sa_assessment_action \"Assess pressure alarm\" id \"bae5b192-5b8e-51c6-82ae-2331af0d33bf\" {\n body {\n Action {\n action @sa_assess;\n };\n };\n parent @sa_assessment_procedure;\n}\n\nchain_involvement sa_assessment_delivery \"Chain involvement: Assess an alarm\" id \"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57\" {\n source @sa_assessment_procedure;\n target @sa_triage;\n}\n\n", "sa/behavior/process_sa_field_procedure.arcadia": "sa_functional_chain sa_field_procedure \"Field repair procedure\" id \"93eb6479-54e9-59cb-ac7b-16912347bfc0\" {\n steps [@sa_request_step, @sa_repair_step, @sa_report_step];\n}\n\nsa_occurrence sa_repair_step \"Repair the valve\" id \"0f195fea-3493-5ebd-966d-da9eddeb05d7\" {\n body {\n Action {\n action @sa_repair;\n };\n };\n parent @sa_field_procedure;\n}\n\nsa_occurrence sa_report_step \"Report the measured result\" id \"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac\" {\n body {\n Exchange {\n exchange @sa_repair_report;\n };\n };\n parent @sa_field_procedure;\n}\n\nsa_occurrence sa_request_step \"Request the field repair\" id \"40d94322-baa2-5c81-b261-ff47cdc33782\" {\n body {\n Exchange {\n exchange @sa_repair_request;\n };\n };\n parent @sa_field_procedure;\n}\n\nsequence_link sa_repair_then_report \"Sequence link: Report the measured result\" id \"7fb30b1d-195c-5f0e-a19c-a536f519a899\" {\n source @sa_repair_step;\n target @sa_report_step;\n}\n\nsequence_link sa_request_then_repair \"Sequence link: Repair the valve\" id \"6a6d968f-26d6-5dbb-b721-5a27d362779a\" {\n source @sa_request_step;\n target @sa_repair_step;\n}\n\n", "sa/behavior/process_sa_response.arcadia": "sa_functional_chain sa_response \"Handle a pressure alarm\" id \"5139ce73-56fd-5875-ba3a-e569fc890231\" {\n steps [@sa_assess_step, @sa_decision, @sa_reset_step, @sa_use_field, @sa_merge, @sa_confirm_step];\n}\n\nsa_occurrence sa_assess_step \"Assess the alarm\" id \"9024243c-ccc1-5edb-8477-2aa16e5e9a50\" {\n body {\n SequenceReference {\n sequence @sa_assessment_procedure;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_confirm_step \"Confirm safe pressure\" id \"47bec4f9-d6d0-5ed1-adca-fa0d960dc416\" {\n body {\n Action {\n action @sa_confirm;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_decision \"Can a remote reset safely recover pressure?\" id \"30c8fad9-a49b-5692-9542-3148e76afd7b\" {\n body {\n Control {\n kind Choice;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_merge \"Recovery path completed\" id \"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07\" {\n body {\n Control {\n kind Merge;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_reset_step \"Try the authorized remote reset\" id \"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6\" {\n body {\n Action {\n action @sa_reset;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_use_field \"Use the field repair procedure\" id \"d5e61c5d-510b-5091-a878-da46f3a9e152\" {\n body {\n SequenceReference {\n sequence @sa_field_procedure;\n };\n };\n parent @sa_response;\n}\n\nsequence_link sa_assess_then_decide \"Continue\" id \"9d4a131f-36ad-5125-b21f-c3dd033b8c82\" {\n source @sa_assess_step;\n target @sa_decision;\n}\n\nsequence_link sa_field_path \"else\" id \"1bbd5957-1173-51d8-97e3-ba4f084227ae\" {\n guard \"else\";\n source @sa_decision;\n target @sa_use_field;\n}\n\nsequence_link sa_remote_path \"remote reset is authorized\" id \"d8b6710a-e713-5979-934f-e5ca7d155bb4\" {\n guard \"remote reset is authorized\";\n source @sa_decision;\n target @sa_reset_step;\n}\n\nsequence_link sa_confirm_path \"Continue\" id \"1e738f27-a3a1-526d-b330-6384088b9689\" {\n source @sa_merge;\n target @sa_confirm_step;\n}\n\nsequence_link sa_remote_merge \"Continue\" id \"e5279265-8eac-52e8-98dc-571b20475e1f\" {\n source @sa_reset_step;\n target @sa_merge;\n}\n\nchain_involvement sa_response_delivery \"Chain involvement: Restore a safe supply\" id \"66efc484-53c7-51a3-89e9-422429344b38\" {\n source @sa_response;\n target @sa_restore;\n}\n\nsequence_link sa_field_merge \"Continue\" id \"0f6ac3fb-4ad6-581e-ad14-336472072d5e\" {\n source @sa_use_field;\n target @sa_merge;\n}\n\n", "sa/behavior/scenario_sa_conversation.arcadia": "sa_scenario sa_conversation \"Repair request and measured reply\" id \"730b27ca-b039-5a3b-8dc6-03418f9061b3\" {\n context @sa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@sa_call, @sa_reply];\n viewpoint BoundaryInterface;\n}\n\nsa_occurrence sa_call \"Request valve repair\" id \"8bab4783-a098-5984-9e36-493957caf26c\" {\n body {\n Exchange {\n exchange @sa_contact;\n message_kind Call;\n receiver @sa_responder;\n sender @sa_caller;\n values [{\n expression \"420.0\";\n field @sa_pressure_parameter;\n }];\n };\n };\n parent @sa_conversation;\n}\n\nsa_lifeline sa_caller \"Controller\" id \"98c61788-2fee-51f4-8cf9-de48e8c70e9e\" {\n parent @sa_conversation;\n represented @sa_control;\n}\n\nsa_occurrence sa_reply \"Return pressure after repair\" id \"4e1c0a56-ce80-5f13-a93a-6956de54880c\" {\n body {\n Exchange {\n exchange @sa_contact;\n message_kind Reply;\n receiver @sa_caller;\n reply_to @sa_call;\n sender @sa_responder;\n values [{\n expression \"320.0\";\n field @sa_pressure_parameter;\n }];\n };\n };\n parent @sa_conversation;\n}\n\nsa_lifeline sa_responder \"Technician\" id \"6249b54a-e396-5338-82b9-89266c55670d\" {\n parent @sa_conversation;\n represented @sa_technician;\n}\n\nartifact repair_test_evidence \"Repair conversation acceptance notes\" id \"f5922bf7-05d8-590f-86e9-1d09f37f4fa6\" {\n description \"A local teaching artifact, not proof of a real valve's safety.\";\n fragment \"acceptance\";\n owner @sa_conversation;\n relation Verifies;\n revision \"lesson-1\";\n uri \"evidence/repair-check.md\";\n}\n\n", "sa/behavior/scenario_sa_full_scenario.arcadia": "sa_scenario sa_full_scenario \"Restore supply through field repair\" id \"f746a1cd-ff9f-55c0-b325-01c03d2f4fae\" {\n context @sa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@sa_use_conversation];\n viewpoint BoundaryInterface;\n}\n\nsa_lifeline sa_outer_controller \"Controller\" id \"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023\" {\n parent @sa_full_scenario;\n represented @sa_control;\n}\n\nsa_lifeline sa_outer_technician \"Technician\" id \"155e4fe4-9e3b-5f4e-b886-28abcc3f086b\" {\n parent @sa_full_scenario;\n represented @sa_technician;\n}\n\nsa_occurrence sa_use_conversation \"Use the reviewed repair conversation\" id \"1c9da843-e2d3-5591-8e3f-db083a42867e\" {\n body {\n ScenarioUse {\n bindings [{\n local @sa_outer_controller;\n referenced @sa_caller;\n }, {\n local @sa_outer_technician;\n referenced @sa_responder;\n }];\n scenario @sa_conversation;\n };\n };\n parent @sa_full_scenario;\n}\n\n", "sa/behavior/state_machine_sa_monitor.arcadia": "sa_state_machine sa_monitor \"Pressure supervision\" id \"132b3f28-3f88-5327-9868-8c8b645ed412\" {\n parent @sa_control;\n}\n\nsa_region sa_monitor_region \"Supervision cycle\" id \"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c\" {\n parent @sa_monitor;\n}\n\nsa_initial sa_monitor_initial \"Start\" id \"57eb5348-14d8-560e-996a-8dbf993243e2\" {\n parent @sa_monitor_region;\n}\n\nsa_state sa_monitoring \"Monitoring\" id \"8af21f9b-c21e-5aae-af0d-0958840f6655\" {\n parent @sa_monitor_region;\n}\n\nsa_state sa_waiting \"Awaiting repair\" id \"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37\" {\n parent @sa_monitor_region;\n}\n\nstate_transition sa_start_monitoring \"State transition: Monitoring\" id \"47730532-0372-5cc5-9d6d-0b8953aebdd8\" {\n source @sa_monitor_initial;\n target @sa_monitoring;\n}\n\nstate_transition sa_alarm_transition \"State transition: Awaiting repair\" id \"13c3bfa4-9254-5ab2-b96f-f65f402adf81\" {\n source @sa_monitoring;\n target @sa_waiting;\n triggers [@sa_high_pressure];\n}\n\nstate_action sa_assess_on_entry \"Assess when repair is needed\" id \"a887f96a-37cb-5891-8070-011fa276e5b5\" {\n phase Entry;\n source @sa_waiting;\n target @sa_assess;\n}\n\nstate_transition sa_normal_transition \"State transition: Monitoring\" id \"6e2c1b47-764c-577a-b325-ff66dd2a2768\" {\n guard \"repair confirmed and pressure is safe\";\n source @sa_waiting;\n target @sa_monitoring;\n}\n\n", "sa/functions/function_sa_audit_thresholds.arcadia": "sa_function sa_audit_thresholds \"Audit pressure thresholds\" id \"4149a872-3440-59de-9879-8981e78d27ab\" {\n description \"Deliberately unfinished: assigned to the service, but no behavior context yet. Model checks should expose this one work_without_behavior_context warning.\";\n}\n\n", "sa/functions/function_sa_restore_work.arcadia": "sa_function sa_restore_work \"Restore safe pressure\" id \"58867e7d-916e-5ebc-9e4c-8dbed1314be3\" {\n}\n\nsa_function sa_assess \"Assess pressure alarm\" id \"dddae020-a444-5d48-acc8-139d2696a672\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_request_out \"Request field repair output\" id \"24a6850e-b819-57e0-af88-ca4ab76581b7\" {\n contract {\n FunctionOutput {\n outgoing_items [@sa_repair_operation];\n };\n };\n parent @sa_assess;\n}\n\nsa_function sa_confirm \"Confirm safe pressure\" id \"d75eb3fa-a27d-52d5-8782-8b342b3865f6\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_report_in \"Report repair result input\" id \"391af7c4-b07d-53a7-8ddd-5c81461fc4f8\" {\n contract {\n FunctionInput {\n incoming_items [@sa_repair_operation];\n };\n };\n parent @sa_confirm;\n}\n\nsa_function sa_repair \"Repair valve in the field\" id \"9497e10f-04c4-5586-8738-2464a6f00bd4\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_report_out \"Report repair result output\" id \"994faed7-dbc8-5b96-9d62-7604ac0fbc3a\" {\n contract {\n FunctionOutput {\n outgoing_items [@sa_repair_operation];\n };\n };\n parent @sa_repair;\n}\n\nsa_port sa_repair_request_in \"Request field repair input\" id \"d2113fb0-a531-54ef-9484-13951b00ab8f\" {\n contract {\n FunctionInput {\n incoming_items [@sa_repair_operation];\n };\n };\n parent @sa_repair;\n}\n\nsa_function sa_reset \"Reset valve remotely\" id \"09342ccb-044b-5483-ac58-87dc3cf7831c\" {\n parent @sa_restore_work;\n}\n\ncapability_involvement sa_assessment_support \"Capability involvement: Assess an alarm\" id \"93eaad8d-83b7-5980-b9bb-86c9e3f31da4\" {\n source @sa_assess;\n target @sa_triage;\n}\n\nfunctional_exchange sa_repair_request \"Request field repair\" id \"93474111-f23e-56c1-b61b-b7c2396b91bd\" {\n items [@sa_repair_operation];\n source @sa_assess;\n source_port @sa_repair_request_out;\n target @sa_repair;\n target_port @sa_repair_request_in;\n}\n\nfunctional_exchange sa_repair_report \"Report repair result\" id \"684eadc3-e670-5779-a60f-bbc9a5bfb062\" {\n items [@sa_repair_operation];\n source @sa_repair;\n source_port @sa_repair_report_out;\n target @sa_confirm;\n target_port @sa_repair_report_in;\n}\n\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/02.response.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/02.response.json new file mode 100644 index 00000000..72111df3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/02.response.json @@ -0,0 +1 @@ +{"elements":94,"migration":null,"model_id":"2786d72f-5763-5f33-a57f-2773a4ca1a6c","name":"Restore safe water pressure — release 1 walkthrough","relations":62,"resource_id":"b1120b39-d420-496a-855a-b9ee0524b653","revision":1,"schema_version":7} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/03.request.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/03.request.json new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/03.response.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/03.response.json new file mode 100644 index 00000000..2c3b96fa --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/03.response.json @@ -0,0 +1 @@ +{"resource_id":"b1120b39-d420-496a-855a-b9ee0524b653","revision":1,"model":{"schema_version":7,"id":"2786d72f-5763-5f33-a57f-2773a4ca1a6c","alias":"pressure_restoration","name":"Restore safe water pressure — release 1 walkthrough","description":"A controller either resets a valve remotely or requests field repair. Compare the operational need with the explicitly chosen coordination-service boundary. Start with README.md beside project.arcadia. Units and guards are descriptive; this model does not simulate a real water network.","elements":{"01490fa8-2f01-5ac8-9722-d55d45414379":{"id":"01490fa8-2f01-5ac8-9722-d55d45414379","alias":"sa_high_pressure","name":"Pressure alarm detected","description":"","parent":null,"body":{"Sa":{"Shared":{"Event":{"body":{"Change":{"expression":"measured_pressure > operating_limit"}}}}}}},"022d3cfa-bbaf-5e13-924a-8e55099b8745":{"id":"022d3cfa-bbaf-5e13-924a-8e55099b8745","alias":"oa_assessment_procedure","name":"Assess an alarm procedure","description":"","parent":null,"body":{"Oa":{"Process":{"steps":["942975b8-0bef-5ae8-9fcb-c37497833fb0"]}}}},"09342ccb-044b-5483-ac58-87dc3cf7831c":{"id":"09342ccb-044b-5483-ac58-87dc3cf7831c","alias":"sa_reset","name":"Reset valve remotely","description":"","parent":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","body":{"Sa":"Function"}},"0b07b9ed-492d-57f6-b0b1-ce8a709238a7":{"id":"0b07b9ed-492d-57f6-b0b1-ce8a709238a7","alias":"oa_assess_step","name":"Assess the alarm","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"SequenceReference":{"sequence":"022d3cfa-bbaf-5e13-924a-8e55099b8745"}},"precondition":"","postcondition":""}}}}},"0f195fea-3493-5ebd-966d-da9eddeb05d7":{"id":"0f195fea-3493-5ebd-966d-da9eddeb05d7","alias":"sa_repair_step","name":"Repair the valve","description":"","parent":"93eb6479-54e9-59cb-ac7b-16912347bfc0","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"9497e10f-04c4-5586-8738-2464a6f00bd4","lifeline":null}},"precondition":"","postcondition":""}}}}},"132b3f28-3f88-5327-9868-8c8b645ed412":{"id":"132b3f28-3f88-5327-9868-8c8b645ed412","alias":"sa_monitor","name":"Pressure supervision","description":"","parent":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","body":{"Sa":{"Shared":"StateMachine"}}},"155e4fe4-9e3b-5f4e-b886-28abcc3f086b":{"id":"155e4fe4-9e3b-5f4e-b886-28abcc3f086b","alias":"sa_outer_technician","name":"Technician","description":"","parent":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","body":{"Sa":{"Shared":{"Lifeline":{"represented":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a"}}}}},"1970608f-85d1-5234-ac86-5e2b0df27dc3":{"id":"1970608f-85d1-5234-ac86-5e2b0df27dc3","alias":"oa_monitor","name":"Pressure supervision","description":"","parent":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","body":{"Oa":{"Shared":"StateMachine"}}},"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771":{"id":"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771","alias":"oa_contact_category","name":"Field contact","description":"","parent":null,"body":{"Oa":{"Shared":{"ExchangeCategory":{"family":"Participant","exchanges":["27b47887-baf0-518b-bf87-f5acbf7d0b93"]}}}}},"1b91f8a7-0bdb-514e-b1cd-955658e09927":{"id":"1b91f8a7-0bdb-514e-b1cd-955658e09927","alias":"oa_restore_work","name":"Restore safe pressure","description":"","parent":null,"body":{"Oa":"Activity"}},"1c9da843-e2d3-5591-8e3f-db083a42867e":{"id":"1c9da843-e2d3-5591-8e3f-db083a42867e","alias":"sa_use_conversation","name":"Use the reviewed repair conversation","description":"","parent":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","body":{"Sa":{"Shared":{"Occurrence":{"body":{"ScenarioUse":{"scenario":"730b27ca-b039-5a3b-8dc6-03418f9061b3","bindings":[{"referenced":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","local":"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023"},{"referenced":"6249b54a-e396-5338-82b9-89266c55670d","local":"155e4fe4-9e3b-5f4e-b886-28abcc3f086b"}]}},"precondition":"","postcondition":""}}}}},"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023":{"id":"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023","alias":"sa_outer_controller","name":"Controller","description":"","parent":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","body":{"Sa":{"Shared":{"Lifeline":{"represented":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0"}}}}},"2011b3ac-614b-5a47-8891-7ff81965f425":{"id":"2011b3ac-614b-5a47-8891-7ff81965f425","alias":"oa_outer_controller","name":"Controller","description":"","parent":"d6f881a4-95da-54e9-ad97-1b8965532629","body":{"Oa":{"Shared":{"Lifeline":{"represented":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22"}}}}},"20472233-5ce6-5ffe-b4ad-0bdbccf3e423":{"id":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","alias":"oa_conversation","name":"Repair request and measured reply","description":"","parent":null,"body":{"Oa":{"Shared":{"Scenario":{"viewpoint":"ParticipantInteraction","context":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","precondition":"A pressure alarm has been assessed","postcondition":"The controller has received the measured pressure after repair","steps":["b97437c6-cd7a-5a05-b537-b30a17dd936a","cc2d497a-fd15-5455-9ee5-e70eb95811d8"]}}}}},"24a6850e-b819-57e0-af88-ca4ab76581b7":{"id":"24a6850e-b819-57e0-af88-ca4ab76581b7","alias":"sa_repair_request_out","name":"Request field repair output","description":"","parent":"dddae020-a444-5d48-acc8-139d2696a672","body":{"Sa":{"Shared":{"Port":{"contract":{"FunctionOutput":{"outgoing_items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}},"legacy":null}}}}},"30c8fad9-a49b-5692-9542-3148e76afd7b":{"id":"30c8fad9-a49b-5692-9542-3148e76afd7b","alias":"sa_decision","name":"Can a remote reset safely recover pressure?","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Control":{"kind":"Choice"}},"precondition":"","postcondition":""}}}}},"32aa9940-df6e-5a12-b9bd-6337e2d2ed22":{"id":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","alias":"oa_control","name":"Control room","description":"","parent":null,"body":{"Oa":"Entity"}},"391af7c4-b07d-53a7-8ddd-5c81461fc4f8":{"id":"391af7c4-b07d-53a7-8ddd-5c81461fc4f8","alias":"sa_repair_report_in","name":"Report repair result input","description":"","parent":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","body":{"Sa":{"Shared":{"Port":{"contract":{"FunctionInput":{"incoming_items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}},"legacy":null}}}}},"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c":{"id":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","alias":"sa_monitor_region","name":"Supervision cycle","description":"","parent":"132b3f28-3f88-5327-9868-8c8b645ed412","body":{"Sa":{"Shared":"Region"}}},"3dfee23a-148b-5cec-ad2d-b774e84ea5bb":{"id":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","alias":"oa_restore","name":"Restore a safe supply","description":"","parent":null,"body":{"Oa":"Capability"}},"40d94322-baa2-5c81-b261-ff47cdc33782":{"id":"40d94322-baa2-5c81-b261-ff47cdc33782","alias":"sa_request_step","name":"Request the field repair","description":"","parent":"93eb6479-54e9-59cb-ac7b-16912347bfc0","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"93474111-f23e-56c1-b61b-b7c2396b91bd","sender":null,"receiver":null,"message_kind":"Asynchronous","reply_to":null,"values":[]}},"precondition":"","postcondition":""}}}}},"4149a872-3440-59de-9879-8981e78d27ab":{"id":"4149a872-3440-59de-9879-8981e78d27ab","alias":"sa_audit_thresholds","name":"Audit pressure thresholds","description":"Deliberately unfinished: assigned to the service, but no behavior context yet. Model checks should expose this one work_without_behavior_context warning.","parent":null,"body":{"Sa":"Function"}},"41859a65-ded2-547b-ab03-14e2fa740cf9":{"id":"41859a65-ded2-547b-ab03-14e2fa740cf9","alias":"oa_caller","name":"Controller","description":"","parent":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","body":{"Oa":{"Shared":{"Lifeline":{"represented":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22"}}}}},"435bf87c-73fd-5e4d-978a-4c471bc9eaf0":{"id":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","alias":"sa_control","name":"Pressure coordination service","description":"","parent":null,"body":{"Sa":"System"}},"47bec4f9-d6d0-5ed1-adca-fa0d960dc416":{"id":"47bec4f9-d6d0-5ed1-adca-fa0d960dc416","alias":"sa_confirm_step","name":"Confirm safe pressure","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","lifeline":null}},"precondition":"","postcondition":""}}}}},"4e1c0a56-ce80-5f13-a93a-6956de54880c":{"id":"4e1c0a56-ce80-5f13-a93a-6956de54880c","alias":"sa_reply","name":"Return pressure after repair","description":"","parent":"730b27ca-b039-5a3b-8dc6-03418f9061b3","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"63009b5f-539e-5914-b630-ec6b7fefb4d5","sender":"6249b54a-e396-5338-82b9-89266c55670d","receiver":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","message_kind":"Reply","reply_to":"8bab4783-a098-5984-9e36-493957caf26c","values":[{"path":[],"field":"bb12ba5d-aab5-5a1b-99de-c767f5365b57","expression":"320.0"}]}},"precondition":"","postcondition":""}}}}},"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07":{"id":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","alias":"sa_merge","name":"Recovery path completed","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Control":{"kind":"Merge"}},"precondition":"","postcondition":""}}}}},"5139ce73-56fd-5875-ba3a-e569fc890231":{"id":"5139ce73-56fd-5875-ba3a-e569fc890231","alias":"sa_response","name":"Handle a pressure alarm","description":"","parent":null,"body":{"Sa":{"FunctionalChain":{"steps":["9024243c-ccc1-5edb-8477-2aa16e5e9a50","30c8fad9-a49b-5692-9542-3148e76afd7b","bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","d5e61c5d-510b-5091-a878-da46f3a9e152","4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","47bec4f9-d6d0-5ed1-adca-fa0d960dc416"]}}}},"57eb5348-14d8-560e-996a-8dbf993243e2":{"id":"57eb5348-14d8-560e-996a-8dbf993243e2","alias":"sa_monitor_initial","name":"Start","description":"","parent":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","body":{"Sa":{"Shared":{"State":{"kind":"Initial","entry":"","exit":"","do_activity":""}}}}},"58867e7d-916e-5ebc-9e4c-8dbed1314be3":{"id":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","alias":"sa_restore_work","name":"Restore safe pressure","description":"","parent":null,"body":{"Sa":"Function"}},"58bae2b0-f560-50f2-818d-19091d22d18a":{"id":"58bae2b0-f560-50f2-818d-19091d22d18a","alias":"oa_response","name":"Handle a pressure alarm","description":"","parent":null,"body":{"Oa":{"Process":{"steps":["0b07b9ed-492d-57f6-b0b1-ce8a709238a7","b280c6ca-e5f9-5424-a5c1-5676e01c2371","d2026fc2-74a8-5e22-9942-ff3eb68a3677","fc6763bf-a534-54bf-afcd-57ab285ff07d","6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","e00594a3-6122-5a6b-b3c2-ecb5506c741d"]}}}},"58c15833-6e75-523a-b57f-a88f19f6d672":{"id":"58c15833-6e75-523a-b57f-a88f19f6d672","alias":"oa_waiting","name":"Awaiting repair","description":"","parent":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","body":{"Oa":{"Shared":{"State":{"kind":"State","entry":"","exit":"","do_activity":""}}}}},"5ad034b1-084d-5273-9e70-971671766132":{"id":"5ad034b1-084d-5273-9e70-971671766132","alias":"sa_mission","name":"Maintain safe water supply","description":"","parent":null,"body":{"Sa":"Mission"}},"5ba8079c-2dbe-5e98-ae82-2b60c6020a02":{"id":"5ba8079c-2dbe-5e98-ae82-2b60c6020a02","alias":"oa_request_step","name":"Request the field repair","description":"","parent":"5d3af417-244c-54bb-9588-16daedda4e1f","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d","sender":null,"receiver":null,"message_kind":"Asynchronous","reply_to":null,"values":[]}},"precondition":"","postcondition":""}}}}},"5d3af417-244c-54bb-9588-16daedda4e1f":{"id":"5d3af417-244c-54bb-9588-16daedda4e1f","alias":"oa_field_procedure","name":"Field repair procedure","description":"","parent":null,"body":{"Oa":{"Process":{"steps":["5ba8079c-2dbe-5e98-ae82-2b60c6020a02","c59432fe-6092-5ee0-908d-9dbf39476471","df2fd3f8-6bc2-5380-a13f-36643ed35ac7"]}}}},"61f7bbfb-74a4-5540-9182-2583dfb27a49":{"id":"61f7bbfb-74a4-5540-9182-2583dfb27a49","alias":"oa_assess","name":"Assess pressure alarm","description":"","parent":"1b91f8a7-0bdb-514e-b1cd-955658e09927","body":{"Oa":"Activity"}},"6249b54a-e396-5338-82b9-89266c55670d":{"id":"6249b54a-e396-5338-82b9-89266c55670d","alias":"sa_responder","name":"Technician","description":"","parent":"730b27ca-b039-5a3b-8dc6-03418f9061b3","body":{"Sa":{"Shared":{"Lifeline":{"represented":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a"}}}}},"65d6b8d6-271a-5c84-8b42-abbe310c955e":{"id":"65d6b8d6-271a-5c84-8b42-abbe310c955e","alias":"oa_high_pressure","name":"Pressure alarm detected","description":"","parent":null,"body":{"Oa":{"Shared":{"Event":{"body":{"Change":{"expression":"measured_pressure > operating_limit"}}}}}}},"6a30b763-cc51-546d-907f-5c63657cfd03":{"id":"6a30b763-cc51-546d-907f-5c63657cfd03","alias":"oa_triage","name":"Assess an alarm","description":"","parent":null,"body":{"Oa":"Capability"}},"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d":{"id":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","alias":"oa_merge","name":"Recovery path completed","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Control":{"kind":"Merge"}},"precondition":"","postcondition":""}}}}},"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae":{"id":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","alias":"oa_monitoring","name":"Monitoring","description":"","parent":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","body":{"Oa":{"Shared":{"State":{"kind":"State","entry":"","exit":"","do_activity":""}}}}},"727c0b5c-8db6-5eb7-83d6-735519c5949f":{"id":"727c0b5c-8db6-5eb7-83d6-735519c5949f","alias":"oa_confirm","name":"Confirm safe pressure","description":"","parent":"1b91f8a7-0bdb-514e-b1cd-955658e09927","body":{"Oa":"Activity"}},"730b27ca-b039-5a3b-8dc6-03418f9061b3":{"id":"730b27ca-b039-5a3b-8dc6-03418f9061b3","alias":"sa_conversation","name":"Repair request and measured reply","description":"","parent":null,"body":{"Sa":{"Shared":{"Scenario":{"viewpoint":"BoundaryInterface","context":"81259051-370a-512d-a3b5-6420a6f933b6","precondition":"A pressure alarm has been assessed","postcondition":"The controller has received the measured pressure after repair","steps":["8bab4783-a098-5984-9e36-493957caf26c","4e1c0a56-ce80-5f13-a93a-6956de54880c"]}}}}},"781cbe75-410f-5cc5-aeb8-a43491f77b99":{"id":"781cbe75-410f-5cc5-aeb8-a43491f77b99","alias":"sa_contact_category","name":"Field contact","description":"","parent":null,"body":{"Sa":{"Shared":{"ExchangeCategory":{"family":"Participant","exchanges":["63009b5f-539e-5914-b630-ec6b7fefb4d5"]}}}}},"81259051-370a-512d-a3b5-6420a6f933b6":{"id":"81259051-370a-512d-a3b5-6420a6f933b6","alias":"sa_restore","name":"Restore a safe supply","description":"","parent":null,"body":{"Sa":"Capability"}},"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7":{"id":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","alias":"oa_monitor_region","name":"Supervision cycle","description":"","parent":"1970608f-85d1-5234-ac86-5e2b0df27dc3","body":{"Oa":{"Shared":"Region"}}},"87d0a95b-af1b-5352-b753-e4c6533671a5":{"id":"87d0a95b-af1b-5352-b753-e4c6533671a5","alias":"sa_pressure","name":"Measured pressure","description":"","parent":null,"body":{"Sa":{"Shared":{"DataType":{"definition":{"Real":{"minimum":0.0,"maximum":600.0}},"default":null,"unit":"kPa"}}}}},"8af21f9b-c21e-5aae-af0d-0958840f6655":{"id":"8af21f9b-c21e-5aae-af0d-0958840f6655","alias":"sa_monitoring","name":"Monitoring","description":"","parent":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","body":{"Sa":{"Shared":{"State":{"kind":"State","entry":"","exit":"","do_activity":""}}}}},"8bab4783-a098-5984-9e36-493957caf26c":{"id":"8bab4783-a098-5984-9e36-493957caf26c","alias":"sa_call","name":"Request valve repair","description":"","parent":"730b27ca-b039-5a3b-8dc6-03418f9061b3","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"63009b5f-539e-5914-b630-ec6b7fefb4d5","sender":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","receiver":"6249b54a-e396-5338-82b9-89266c55670d","message_kind":"Call","reply_to":null,"values":[{"path":[],"field":"bb12ba5d-aab5-5a1b-99de-c767f5365b57","expression":"420.0"}]}},"precondition":"","postcondition":""}}}}},"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7":{"id":"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7","alias":"oa_pressure_parameter","name":"Pressure before / after repair","description":"","parent":"d736c7d6-d369-550a-8ba4-dae223e40bb3","body":{"Oa":{"Shared":{"DataField":{"type_ref":{"Named":"e7824764-5db9-5384-8198-2fbaea2b10b2"},"minimum":1,"maximum":1,"unit":"","direction":"InOut","storage":"Value","default":null}}}}},"9024243c-ccc1-5edb-8477-2aa16e5e9a50":{"id":"9024243c-ccc1-5edb-8477-2aa16e5e9a50","alias":"sa_assess_step","name":"Assess the alarm","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"SequenceReference":{"sequence":"acd5a018-f559-5298-a40d-1cf6e1353e74"}},"precondition":"","postcondition":""}}}}},"9349b353-53f2-56f8-b571-a05b09335cdf":{"id":"9349b353-53f2-56f8-b571-a05b09335cdf","alias":"oa_repair_traffic","name":"Repair work exchanges","description":"","parent":null,"body":{"Oa":{"Shared":{"ExchangeCategory":{"family":"Work","exchanges":["cf423ea2-8b2e-5a27-93d4-5e8542d9db8d","b436d0b3-c824-5a96-af6b-2c269816d1cc"]}}}}},"93eb6479-54e9-59cb-ac7b-16912347bfc0":{"id":"93eb6479-54e9-59cb-ac7b-16912347bfc0","alias":"sa_field_procedure","name":"Field repair procedure","description":"","parent":null,"body":{"Sa":{"FunctionalChain":{"steps":["40d94322-baa2-5c81-b261-ff47cdc33782","0f195fea-3493-5ebd-966d-da9eddeb05d7","ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac"]}}}},"942975b8-0bef-5ae8-9fcb-c37497833fb0":{"id":"942975b8-0bef-5ae8-9fcb-c37497833fb0","alias":"oa_assessment_action","name":"Assess pressure alarm","description":"","parent":"022d3cfa-bbaf-5e13-924a-8e55099b8745","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"61f7bbfb-74a4-5540-9182-2583dfb27a49","lifeline":null}},"precondition":"","postcondition":""}}}}},"9497e10f-04c4-5586-8738-2464a6f00bd4":{"id":"9497e10f-04c4-5586-8738-2464a6f00bd4","alias":"sa_repair","name":"Repair valve in the field","description":"","parent":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","body":{"Sa":"Function"}},"98c61788-2fee-51f4-8cf9-de48e8c70e9e":{"id":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","alias":"sa_caller","name":"Controller","description":"","parent":"730b27ca-b039-5a3b-8dc6-03418f9061b3","body":{"Sa":{"Shared":{"Lifeline":{"represented":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0"}}}}},"98d411e7-7c65-5c3f-b543-8bf0f2522ea2":{"id":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","alias":"sa_control_port","name":"Repair service client","description":"Explicitly chosen Standard component port for the repair service.","parent":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","body":{"Sa":{"Shared":{"Port":{"contract":{"Component":{"kind":"Standard","orientation":"Unset"}},"legacy":null}}}}},"994faed7-dbc8-5b96-9d62-7604ac0fbc3a":{"id":"994faed7-dbc8-5b96-9d62-7604ac0fbc3a","alias":"sa_repair_report_out","name":"Report repair result output","description":"","parent":"9497e10f-04c4-5586-8738-2464a6f00bd4","body":{"Sa":{"Shared":{"Port":{"contract":{"FunctionOutput":{"outgoing_items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}},"legacy":null}}}}},"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5":{"id":"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5","alias":"oa_use_conversation","name":"Use the reviewed repair conversation","description":"","parent":"d6f881a4-95da-54e9-ad97-1b8965532629","body":{"Oa":{"Shared":{"Occurrence":{"body":{"ScenarioUse":{"scenario":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","bindings":[{"referenced":"41859a65-ded2-547b-ab03-14e2fa740cf9","local":"2011b3ac-614b-5a47-8891-7ff81965f425"},{"referenced":"fc81c5f0-0442-5b88-992b-e5b10f351c59","local":"fffff882-78fd-5415-928d-c1ef7fac6576"}]}},"precondition":"","postcondition":""}}}}},"a21465af-05f3-5fb5-8983-de26932422fb":{"id":"a21465af-05f3-5fb5-8983-de26932422fb","alias":"oa_repair","name":"Repair valve in the field","description":"","parent":"1b91f8a7-0bdb-514e-b1cd-955658e09927","body":{"Oa":"Activity"}},"a4b8942e-a975-5f88-ad14-8f38c345baac":{"id":"a4b8942e-a975-5f88-ad14-8f38c345baac","alias":"sa_repair_interface","name":"Valve repair service","description":"","parent":null,"body":{"Sa":{"Shared":{"Interface":{"supertype":null}}}}},"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37":{"id":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","alias":"sa_waiting","name":"Awaiting repair","description":"","parent":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","body":{"Sa":{"Shared":{"State":{"kind":"State","entry":"","exit":"","do_activity":""}}}}},"a7ffb869-9dde-5e76-b276-c719c5c143a9":{"id":"a7ffb869-9dde-5e76-b276-c719c5c143a9","alias":"oa_monitor_initial","name":"Start","description":"","parent":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","body":{"Oa":{"Shared":{"State":{"kind":"Initial","entry":"","exit":"","do_activity":""}}}}},"a962fc5e-3ab0-5296-8b0d-fd84633f9218":{"id":"a962fc5e-3ab0-5296-8b0d-fd84633f9218","alias":"sa_repair_operation","name":"Valve repair","description":"","parent":null,"body":{"Sa":{"Shared":{"ExchangeItem":{"kind":"Information","mechanism":"Operation","supertype":null}}}}},"a9a47e48-100c-57a8-95f0-7fe24da94f94":{"id":"a9a47e48-100c-57a8-95f0-7fe24da94f94","alias":"sa_repair_traffic","name":"Repair work exchanges","description":"","parent":null,"body":{"Sa":{"Shared":{"ExchangeCategory":{"family":"Work","exchanges":["93474111-f23e-56c1-b61b-b7c2396b91bd","684eadc3-e670-5779-a60f-bbc9a5bfb062"]}}}}},"acd5a018-f559-5298-a40d-1cf6e1353e74":{"id":"acd5a018-f559-5298-a40d-1cf6e1353e74","alias":"sa_assessment_procedure","name":"Assess an alarm procedure","description":"","parent":null,"body":{"Sa":{"FunctionalChain":{"steps":["bae5b192-5b8e-51c6-82ae-2331af0d33bf"]}}}},"b280c6ca-e5f9-5424-a5c1-5676e01c2371":{"id":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","alias":"oa_decision","name":"Can a remote reset safely recover pressure?","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Control":{"kind":"Choice"}},"precondition":"","postcondition":""}}}}},"b97437c6-cd7a-5a05-b537-b30a17dd936a":{"id":"b97437c6-cd7a-5a05-b537-b30a17dd936a","alias":"oa_call","name":"Request valve repair","description":"","parent":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"27b47887-baf0-518b-bf87-f5acbf7d0b93","sender":"41859a65-ded2-547b-ab03-14e2fa740cf9","receiver":"fc81c5f0-0442-5b88-992b-e5b10f351c59","message_kind":"Call","reply_to":null,"values":[{"path":[],"field":"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7","expression":"420.0"}]}},"precondition":"","postcondition":""}}}}},"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f":{"id":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f","alias":"sa_triage","name":"Assess an alarm","description":"","parent":null,"body":{"Sa":"Capability"}},"bae5b192-5b8e-51c6-82ae-2331af0d33bf":{"id":"bae5b192-5b8e-51c6-82ae-2331af0d33bf","alias":"sa_assessment_action","name":"Assess pressure alarm","description":"","parent":"acd5a018-f559-5298-a40d-1cf6e1353e74","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"dddae020-a444-5d48-acc8-139d2696a672","lifeline":null}},"precondition":"","postcondition":""}}}}},"bb12ba5d-aab5-5a1b-99de-c767f5365b57":{"id":"bb12ba5d-aab5-5a1b-99de-c767f5365b57","alias":"sa_pressure_parameter","name":"Pressure before / after repair","description":"","parent":"a962fc5e-3ab0-5296-8b0d-fd84633f9218","body":{"Sa":{"Shared":{"DataField":{"type_ref":{"Named":"87d0a95b-af1b-5352-b753-e4c6533671a5"},"minimum":1,"maximum":1,"unit":"","direction":"InOut","storage":"Value","default":null}}}}},"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6":{"id":"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","alias":"sa_reset_step","name":"Try the authorized remote reset","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"09342ccb-044b-5483-ac58-87dc3cf7831c","lifeline":null}},"precondition":"","postcondition":""}}}}},"c05b9422-b9da-5de5-b21d-07ad23bd2b8a":{"id":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","alias":"sa_technician","name":"Field technician","description":"","parent":null,"body":{"Sa":"Actor"}},"c59432fe-6092-5ee0-908d-9dbf39476471":{"id":"c59432fe-6092-5ee0-908d-9dbf39476471","alias":"oa_repair_step","name":"Repair the valve","description":"","parent":"5d3af417-244c-54bb-9588-16daedda4e1f","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"a21465af-05f3-5fb5-8983-de26932422fb","lifeline":null}},"precondition":"","postcondition":""}}}}},"c9c61f50-06e0-5d17-973d-dcc57cd5cc90":{"id":"c9c61f50-06e0-5d17-973d-dcc57cd5cc90","alias":"oa_mission","name":"Maintain safe water supply","description":"","parent":null,"body":{"Oa":"Mission"}},"cc2d497a-fd15-5455-9ee5-e70eb95811d8":{"id":"cc2d497a-fd15-5455-9ee5-e70eb95811d8","alias":"oa_reply","name":"Return pressure after repair","description":"","parent":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"27b47887-baf0-518b-bf87-f5acbf7d0b93","sender":"fc81c5f0-0442-5b88-992b-e5b10f351c59","receiver":"41859a65-ded2-547b-ab03-14e2fa740cf9","message_kind":"Reply","reply_to":"b97437c6-cd7a-5a05-b537-b30a17dd936a","values":[{"path":[],"field":"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7","expression":"320.0"}]}},"precondition":"","postcondition":""}}}}},"d0c8be87-d238-503a-a549-7558a210507f":{"id":"d0c8be87-d238-503a-a549-7558a210507f","alias":"oa_reset","name":"Reset valve remotely","description":"","parent":"1b91f8a7-0bdb-514e-b1cd-955658e09927","body":{"Oa":"Activity"}},"d2026fc2-74a8-5e22-9942-ff3eb68a3677":{"id":"d2026fc2-74a8-5e22-9942-ff3eb68a3677","alias":"oa_reset_step","name":"Try the authorized remote reset","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"d0c8be87-d238-503a-a549-7558a210507f","lifeline":null}},"precondition":"","postcondition":""}}}}},"d2113fb0-a531-54ef-9484-13951b00ab8f":{"id":"d2113fb0-a531-54ef-9484-13951b00ab8f","alias":"sa_repair_request_in","name":"Request field repair input","description":"","parent":"9497e10f-04c4-5586-8738-2464a6f00bd4","body":{"Sa":{"Shared":{"Port":{"contract":{"FunctionInput":{"incoming_items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}},"legacy":null}}}}},"d5e61c5d-510b-5091-a878-da46f3a9e152":{"id":"d5e61c5d-510b-5091-a878-da46f3a9e152","alias":"sa_use_field","name":"Use the field repair procedure","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"SequenceReference":{"sequence":"93eb6479-54e9-59cb-ac7b-16912347bfc0"}},"precondition":"","postcondition":""}}}}},"d6f881a4-95da-54e9-ad97-1b8965532629":{"id":"d6f881a4-95da-54e9-ad97-1b8965532629","alias":"oa_full_scenario","name":"Restore supply through field repair","description":"","parent":null,"body":{"Oa":{"Shared":{"Scenario":{"viewpoint":"ParticipantInteraction","context":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","precondition":"A pressure alarm has been assessed","postcondition":"The controller has received the measured pressure after repair","steps":["9ff94014-afa1-50ab-a4d3-8e9dd0565cc5"]}}}}},"d736c7d6-d369-550a-8ba4-dae223e40bb3":{"id":"d736c7d6-d369-550a-8ba4-dae223e40bb3","alias":"oa_repair_operation","name":"Valve repair","description":"","parent":null,"body":{"Oa":{"Shared":{"ExchangeItem":{"kind":"Information","mechanism":"Operation","supertype":null}}}}},"d75eb3fa-a27d-52d5-8782-8b342b3865f6":{"id":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","alias":"sa_confirm","name":"Confirm safe pressure","description":"","parent":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","body":{"Sa":"Function"}},"dddae020-a444-5d48-acc8-139d2696a672":{"id":"dddae020-a444-5d48-acc8-139d2696a672","alias":"sa_assess","name":"Assess pressure alarm","description":"","parent":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","body":{"Sa":"Function"}},"df2fd3f8-6bc2-5380-a13f-36643ed35ac7":{"id":"df2fd3f8-6bc2-5380-a13f-36643ed35ac7","alias":"oa_report_step","name":"Report the measured result","description":"","parent":"5d3af417-244c-54bb-9588-16daedda4e1f","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"b436d0b3-c824-5a96-af6b-2c269816d1cc","sender":null,"receiver":null,"message_kind":"Asynchronous","reply_to":null,"values":[]}},"precondition":"","postcondition":""}}}}},"e00594a3-6122-5a6b-b3c2-ecb5506c741d":{"id":"e00594a3-6122-5a6b-b3c2-ecb5506c741d","alias":"oa_confirm_step","name":"Confirm safe pressure","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"727c0b5c-8db6-5eb7-83d6-735519c5949f","lifeline":null}},"precondition":"","postcondition":""}}}}},"e07c3952-4a1a-5cc7-b7d5-03a01101ce49":{"id":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","alias":"oa_technician","name":"Field technician","description":"","parent":null,"body":{"Oa":"Actor"}},"e6d69cbd-99d7-596b-bbe3-dada6118a600":{"id":"e6d69cbd-99d7-596b-bbe3-dada6118a600","alias":"sa_technician_port","name":"Repair service provider","description":"Explicitly chosen Standard component port for the repair service.","parent":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","body":{"Sa":{"Shared":{"Port":{"contract":{"Component":{"kind":"Standard","orientation":"Unset"}},"legacy":null}}}}},"e7824764-5db9-5384-8198-2fbaea2b10b2":{"id":"e7824764-5db9-5384-8198-2fbaea2b10b2","alias":"oa_pressure","name":"Measured pressure","description":"","parent":null,"body":{"Oa":{"Shared":{"DataType":{"definition":{"Real":{"minimum":0.0,"maximum":600.0}},"default":null,"unit":"kPa"}}}}},"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac":{"id":"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac","alias":"sa_report_step","name":"Report the measured result","description":"","parent":"93eb6479-54e9-59cb-ac7b-16912347bfc0","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"684eadc3-e670-5779-a60f-bbc9a5bfb062","sender":null,"receiver":null,"message_kind":"Asynchronous","reply_to":null,"values":[]}},"precondition":"","postcondition":""}}}}},"f746a1cd-ff9f-55c0-b325-01c03d2f4fae":{"id":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","alias":"sa_full_scenario","name":"Restore supply through field repair","description":"","parent":null,"body":{"Sa":{"Shared":{"Scenario":{"viewpoint":"BoundaryInterface","context":"81259051-370a-512d-a3b5-6420a6f933b6","precondition":"A pressure alarm has been assessed","postcondition":"The controller has received the measured pressure after repair","steps":["1c9da843-e2d3-5591-8e3f-db083a42867e"]}}}}},"fc6763bf-a534-54bf-afcd-57ab285ff07d":{"id":"fc6763bf-a534-54bf-afcd-57ab285ff07d","alias":"oa_use_field","name":"Use the field repair procedure","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"SequenceReference":{"sequence":"5d3af417-244c-54bb-9588-16daedda4e1f"}},"precondition":"","postcondition":""}}}}},"fc81c5f0-0442-5b88-992b-e5b10f351c59":{"id":"fc81c5f0-0442-5b88-992b-e5b10f351c59","alias":"oa_responder","name":"Technician","description":"","parent":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","body":{"Oa":{"Shared":{"Lifeline":{"represented":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49"}}}}},"fffff882-78fd-5415-928d-c1ef7fac6576":{"id":"fffff882-78fd-5415-928d-c1ef7fac6576","alias":"oa_outer_technician","name":"Technician","description":"","parent":"d6f881a4-95da-54e9-ad97-1b8965532629","body":{"Oa":{"Shared":{"Lifeline":{"represented":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49"}}}}}},"relations":{"094b888c-450c-5c4f-971a-7d75db059574":{"id":"094b888c-450c-5c4f-971a-7d75db059574","alias":"oa_request_carriage","name":"Exchange allocation: Request field repair","description":"","body":{"ExchangeAllocation":{"source":"27b47887-baf0-518b-bf87-f5acbf7d0b93","target":"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d"}}},"09eaa992-4cdf-5ea3-b748-f10fd74b8cba":{"id":"09eaa992-4cdf-5ea3-b748-f10fd74b8cba","alias":"sa_port_request_in","name":"Port allocation: Request field repair input","description":"","body":{"PortAllocation":{"source":"e6d69cbd-99d7-596b-bbe3-dada6118a600","target":"d2113fb0-a531-54ef-9484-13951b00ab8f"}}},"0c4c9e58-ff32-5c00-b82a-d408a4be0183":{"id":"0c4c9e58-ff32-5c00-b82a-d408a4be0183","alias":"oa_mission_participant","name":"Mission involvement: Maintain safe water supply","description":"","body":{"MissionInvolvement":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"c9c61f50-06e0-5d17-973d-dcc57cd5cc90"}}},"0f6ac3fb-4ad6-581e-ad14-336472072d5e":{"id":"0f6ac3fb-4ad6-581e-ad14-336472072d5e","alias":"sa_field_merge","name":"Continue","description":"","body":{"SequenceLink":{"source":"d5e61c5d-510b-5091-a878-da46f3a9e152","target":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","guard":""}}},"109e2d6b-7e86-5934-93a5-fab56eced84e":{"id":"109e2d6b-7e86-5934-93a5-fab56eced84e","alias":"oa_assess_then_decide","name":"Continue","description":"","body":{"SequenceLink":{"source":"0b07b9ed-492d-57f6-b0b1-ce8a709238a7","target":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","guard":""}}},"13c3bfa4-9254-5ab2-b96f-f65f402adf81":{"id":"13c3bfa4-9254-5ab2-b96f-f65f402adf81","alias":"sa_alarm_transition","name":"State transition: Awaiting repair","description":"","body":{"StateTransition":{"source":"8af21f9b-c21e-5aae-af0d-0958840f6655","target":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","transition_kind":"External","triggers":["01490fa8-2f01-5ac8-9722-d55d45414379"],"effects":[],"trigger":"","guard":"","effect":""}}},"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a":{"id":"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a","alias":"oa_reset_allocation","name":"Allocation: Reset valve remotely","description":"","body":{"Allocation":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"d0c8be87-d238-503a-a549-7558a210507f"}}},"1b245065-7242-5d81-8472-aaeb932054c9":{"id":"1b245065-7242-5d81-8472-aaeb932054c9","alias":"sa_audit_allocation","name":"Allocation: Audit pressure thresholds","description":"","body":{"Allocation":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"4149a872-3440-59de-9879-8981e78d27ab"}}},"1bbd5957-1173-51d8-97e3-ba4f084227ae":{"id":"1bbd5957-1173-51d8-97e3-ba4f084227ae","alias":"sa_field_path","name":"else","description":"","body":{"SequenceLink":{"source":"30c8fad9-a49b-5692-9542-3148e76afd7b","target":"d5e61c5d-510b-5091-a878-da46f3a9e152","guard":"else"}}},"1c1e5634-ba8c-591f-b143-90a27cdc6cd2":{"id":"1c1e5634-ba8c-591f-b143-90a27cdc6cd2","alias":"sa_mission_participant","name":"Mission involvement: Maintain safe water supply","description":"","body":{"MissionInvolvement":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"5ad034b1-084d-5273-9e70-971671766132"}}},"1e738f27-a3a1-526d-b330-6384088b9689":{"id":"1e738f27-a3a1-526d-b330-6384088b9689","alias":"sa_confirm_path","name":"Continue","description":"","body":{"SequenceLink":{"source":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","target":"47bec4f9-d6d0-5ed1-adca-fa0d960dc416","guard":""}}},"1f8b1898-65f6-5360-99cf-b78a71bd50ec":{"id":"1f8b1898-65f6-5360-99cf-b78a71bd50ec","alias":"oa_mission_delivery","name":"Mission capability: Restore a safe supply","description":"","body":{"MissionCapability":{"source":"c9c61f50-06e0-5d17-973d-dcc57cd5cc90","target":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb"}}},"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97":{"id":"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97","alias":"oa_normal_transition","name":"State transition: Monitoring","description":"","body":{"StateTransition":{"source":"58c15833-6e75-523a-b57f-a88f19f6d672","target":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","transition_kind":"External","triggers":[],"effects":[],"trigger":"","guard":"repair confirmed and pressure is safe","effect":""}}},"229ee94f-d147-50f6-9769-b5bd0c03a084":{"id":"229ee94f-d147-50f6-9769-b5bd0c03a084","alias":"oa_confirm_path","name":"Continue","description":"","body":{"SequenceLink":{"source":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","target":"e00594a3-6122-5a6b-b3c2-ecb5506c741d","guard":""}}},"27b47887-baf0-518b-bf87-f5acbf7d0b93":{"id":"27b47887-baf0-518b-bf87-f5acbf7d0b93","alias":"oa_contact","name":"Technician service conversation","description":"","body":{"CommunicationMean":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","oriented":false,"items":["d736c7d6-d369-550a-8ba4-dae223e40bb3"]}}},"2b00270c-79a5-52a5-af96-33346bea531b":{"id":"2b00270c-79a5-52a5-af96-33346bea531b","alias":"oa_start_monitoring","name":"State transition: Monitoring","description":"","body":{"StateTransition":{"source":"a7ffb869-9dde-5e76-b276-c719c5c143a9","target":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","transition_kind":"External","triggers":[],"effects":[],"trigger":"","guard":"","effect":""}}},"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3":{"id":"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3","alias":"sa_reset_allocation","name":"Allocation: Reset valve remotely","description":"","body":{"Allocation":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"09342ccb-044b-5483-ac58-87dc3cf7831c"}}},"3f54d890-4ca5-5e36-873b-abb5c92d578c":{"id":"3f54d890-4ca5-5e36-873b-abb5c92d578c","alias":"oa_request_then_repair","name":"Sequence link: Repair the valve","description":"","body":{"SequenceLink":{"source":"5ba8079c-2dbe-5e98-ae82-2b60c6020a02","target":"c59432fe-6092-5ee0-908d-9dbf39476471","guard":""}}},"4549d3fa-5ab9-52a9-b4f9-3a78fc9d625a":{"id":"4549d3fa-5ab9-52a9-b4f9-3a78fc9d625a","alias":"oa_report_carriage","name":"Exchange allocation: Report repair result","description":"","body":{"ExchangeAllocation":{"source":"27b47887-baf0-518b-bf87-f5acbf7d0b93","target":"b436d0b3-c824-5a96-af6b-2c269816d1cc"}}},"47730532-0372-5cc5-9d6d-0b8953aebdd8":{"id":"47730532-0372-5cc5-9d6d-0b8953aebdd8","alias":"sa_start_monitoring","name":"State transition: Monitoring","description":"","body":{"StateTransition":{"source":"57eb5348-14d8-560e-996a-8dbf993243e2","target":"8af21f9b-c21e-5aae-af0d-0958840f6655","transition_kind":"External","triggers":[],"effects":[],"trigger":"","guard":"","effect":""}}},"4c4c4851-5a3d-5bb9-94df-b19f9cf39819":{"id":"4c4c4851-5a3d-5bb9-94df-b19f9cf39819","alias":"sa_request_carriage","name":"Exchange allocation: Request field repair","description":"","body":{"ExchangeAllocation":{"source":"63009b5f-539e-5914-b630-ec6b7fefb4d5","target":"93474111-f23e-56c1-b61b-b7c2396b91bd"}}},"4f85337b-f6eb-533c-a45a-9a5d1d9567ca":{"id":"4f85337b-f6eb-533c-a45a-9a5d1d9567ca","alias":"sa_client_requires","name":"Interface requirement: Valve repair service","description":"","body":{"InterfaceRequirement":{"source":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","target":"a4b8942e-a975-5f88-ad14-8f38c345baac"}}},"55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9":{"id":"55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9","alias":"sa_port_request_out","name":"Port allocation: Request field repair output","description":"","body":{"PortAllocation":{"source":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","target":"24a6850e-b819-57e0-af88-ca4ab76581b7"}}},"55f89fbf-aa3c-5ae1-95ef-ac676f9c1ada":{"id":"55f89fbf-aa3c-5ae1-95ef-ac676f9c1ada","alias":"sa_provider_provides","name":"Interface provision: Valve repair service","description":"","body":{"InterfaceProvision":{"source":"e6d69cbd-99d7-596b-bbe3-dada6118a600","target":"a4b8942e-a975-5f88-ad14-8f38c345baac"}}},"568c5c01-de21-52a2-83bd-afdddc158085":{"id":"568c5c01-de21-52a2-83bd-afdddc158085","alias":"sa_port_report_in","name":"Port allocation: Report repair result input","description":"","body":{"PortAllocation":{"source":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","target":"391af7c4-b07d-53a7-8ddd-5c81461fc4f8"}}},"594c61cd-94e0-5c07-890d-edfd520d7df9":{"id":"594c61cd-94e0-5c07-890d-edfd520d7df9","alias":"oa_assess_allocation","name":"Allocation: Assess pressure alarm","description":"","body":{"Allocation":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"61f7bbfb-74a4-5540-9182-2583dfb27a49"}}},"628cb4fc-fe63-5f6b-b364-6268f26b5740":{"id":"628cb4fc-fe63-5f6b-b364-6268f26b5740","alias":"oa_assessment_delivery","name":"Chain involvement: Assess an alarm","description":"","body":{"ChainInvolvement":{"source":"022d3cfa-bbaf-5e13-924a-8e55099b8745","target":"6a30b763-cc51-546d-907f-5c63657cfd03"}}},"63009b5f-539e-5914-b630-ec6b7fefb4d5":{"id":"63009b5f-539e-5914-b630-ec6b7fefb4d5","alias":"sa_contact","name":"Technician service conversation","description":"","body":{"BoundaryExchange":{"source":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","target":"e6d69cbd-99d7-596b-bbe3-dada6118a600","oriented":false,"items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}}},"66efc484-53c7-51a3-89e9-422429344b38":{"id":"66efc484-53c7-51a3-89e9-422429344b38","alias":"sa_response_delivery","name":"Chain involvement: Restore a safe supply","description":"","body":{"ChainInvolvement":{"source":"5139ce73-56fd-5875-ba3a-e569fc890231","target":"81259051-370a-512d-a3b5-6420a6f933b6"}}},"684eadc3-e670-5779-a60f-bbc9a5bfb062":{"id":"684eadc3-e670-5779-a60f-bbc9a5bfb062","alias":"sa_repair_report","name":"Report repair result","description":"","body":{"FunctionalExchange":{"source":"9497e10f-04c4-5586-8738-2464a6f00bd4","target":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","source_port":"994faed7-dbc8-5b96-9d62-7604ac0fbc3a","target_port":"391af7c4-b07d-53a7-8ddd-5c81461fc4f8","items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}}},"6a6d968f-26d6-5dbb-b721-5a27d362779a":{"id":"6a6d968f-26d6-5dbb-b721-5a27d362779a","alias":"sa_request_then_repair","name":"Sequence link: Repair the valve","description":"","body":{"SequenceLink":{"source":"40d94322-baa2-5c81-b261-ff47cdc33782","target":"0f195fea-3493-5ebd-966d-da9eddeb05d7","guard":""}}},"6e2c1b47-764c-577a-b325-ff66dd2a2768":{"id":"6e2c1b47-764c-577a-b325-ff66dd2a2768","alias":"sa_normal_transition","name":"State transition: Monitoring","description":"","body":{"StateTransition":{"source":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","target":"8af21f9b-c21e-5aae-af0d-0958840f6655","transition_kind":"External","triggers":[],"effects":[],"trigger":"","guard":"repair confirmed and pressure is safe","effect":""}}},"725f2e1b-aa2c-5615-9b1f-28da178168fa":{"id":"725f2e1b-aa2c-5615-9b1f-28da178168fa","alias":"sa_repair_allocation","name":"Allocation: Repair valve in the field","description":"","body":{"Allocation":{"source":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","target":"9497e10f-04c4-5586-8738-2464a6f00bd4"}}},"76218d89-68fd-531d-b35b-90c5b769a5ef":{"id":"76218d89-68fd-531d-b35b-90c5b769a5ef","alias":"oa_remote_path","name":"remote reset is authorized","description":"","body":{"SequenceLink":{"source":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","target":"d2026fc2-74a8-5e22-9942-ff3eb68a3677","guard":"remote reset is authorized"}}},"7fa37e63-db65-5aa7-88f2-31ff4347a787":{"id":"7fa37e63-db65-5aa7-88f2-31ff4347a787","alias":"oa_assess_on_entry","name":"Assess when repair is needed","description":"","body":{"StateAction":{"source":"58c15833-6e75-523a-b57f-a88f19f6d672","target":"61f7bbfb-74a4-5540-9182-2583dfb27a49","phase":"Entry"}}},"7fb30b1d-195c-5f0e-a19c-a536f519a899":{"id":"7fb30b1d-195c-5f0e-a19c-a536f519a899","alias":"sa_repair_then_report","name":"Sequence link: Report the measured result","description":"","body":{"SequenceLink":{"source":"0f195fea-3493-5ebd-966d-da9eddeb05d7","target":"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac","guard":""}}},"93474111-f23e-56c1-b61b-b7c2396b91bd":{"id":"93474111-f23e-56c1-b61b-b7c2396b91bd","alias":"sa_repair_request","name":"Request field repair","description":"","body":{"FunctionalExchange":{"source":"dddae020-a444-5d48-acc8-139d2696a672","target":"9497e10f-04c4-5586-8738-2464a6f00bd4","source_port":"24a6850e-b819-57e0-af88-ca4ab76581b7","target_port":"d2113fb0-a531-54ef-9484-13951b00ab8f","items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}}},"93eaad8d-83b7-5980-b9bb-86c9e3f31da4":{"id":"93eaad8d-83b7-5980-b9bb-86c9e3f31da4","alias":"sa_assessment_support","name":"Capability involvement: Assess an alarm","description":"","body":{"CapabilityInvolvement":{"source":"dddae020-a444-5d48-acc8-139d2696a672","target":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f"}}},"9b9356d7-2db2-5a94-a47e-ea892cf02afe":{"id":"9b9356d7-2db2-5a94-a47e-ea892cf02afe","alias":"sa_assess_allocation","name":"Allocation: Assess pressure alarm","description":"","body":{"Allocation":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"dddae020-a444-5d48-acc8-139d2696a672"}}},"9d4a131f-36ad-5125-b21f-c3dd033b8c82":{"id":"9d4a131f-36ad-5125-b21f-c3dd033b8c82","alias":"sa_assess_then_decide","name":"Continue","description":"","body":{"SequenceLink":{"source":"9024243c-ccc1-5edb-8477-2aa16e5e9a50","target":"30c8fad9-a49b-5692-9542-3148e76afd7b","guard":""}}},"a0902e0f-3d18-576a-9aca-975a136dfdd7":{"id":"a0902e0f-3d18-576a-9aca-975a136dfdd7","alias":"sa_mission_delivery","name":"Mission capability: Restore a safe supply","description":"","body":{"MissionCapability":{"source":"5ad034b1-084d-5273-9e70-971671766132","target":"81259051-370a-512d-a3b5-6420a6f933b6"}}},"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57":{"id":"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57","alias":"sa_assessment_delivery","name":"Chain involvement: Assess an alarm","description":"","body":{"ChainInvolvement":{"source":"acd5a018-f559-5298-a40d-1cf6e1353e74","target":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f"}}},"a887f96a-37cb-5891-8070-011fa276e5b5":{"id":"a887f96a-37cb-5891-8070-011fa276e5b5","alias":"sa_assess_on_entry","name":"Assess when repair is needed","description":"","body":{"StateAction":{"source":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","target":"dddae020-a444-5d48-acc8-139d2696a672","phase":"Entry"}}},"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2":{"id":"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2","alias":"oa_repair_allocation","name":"Allocation: Repair valve in the field","description":"","body":{"Allocation":{"source":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","target":"a21465af-05f3-5fb5-8983-de26932422fb"}}},"b436d0b3-c824-5a96-af6b-2c269816d1cc":{"id":"b436d0b3-c824-5a96-af6b-2c269816d1cc","alias":"oa_repair_report","name":"Report repair result","description":"","body":{"Interaction":{"source":"a21465af-05f3-5fb5-8983-de26932422fb","target":"727c0b5c-8db6-5eb7-83d6-735519c5949f","items":["d736c7d6-d369-550a-8ba4-dae223e40bb3"]}}},"b76bf8de-2fa4-563f-a540-dd30f30e6c49":{"id":"b76bf8de-2fa4-563f-a540-dd30f30e6c49","alias":"sa_confirm_allocation","name":"Allocation: Confirm safe pressure","description":"","body":{"Allocation":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"d75eb3fa-a27d-52d5-8782-8b342b3865f6"}}},"bac43d3b-910b-5bdc-be9b-f78cf973e1ed":{"id":"bac43d3b-910b-5bdc-be9b-f78cf973e1ed","alias":"oa_remote_merge","name":"Continue","description":"","body":{"SequenceLink":{"source":"d2026fc2-74a8-5e22-9942-ff3eb68a3677","target":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","guard":""}}},"bfd4326e-ea65-5269-b5e6-e063a355d1e9":{"id":"bfd4326e-ea65-5269-b5e6-e063a355d1e9","alias":"oa_confirm_allocation","name":"Allocation: Confirm safe pressure","description":"","body":{"Allocation":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"727c0b5c-8db6-5eb7-83d6-735519c5949f"}}},"c1adbbd0-a762-5ee3-8b9a-5c18af377771":{"id":"c1adbbd0-a762-5ee3-8b9a-5c18af377771","alias":"oa_field_path","name":"else","description":"","body":{"SequenceLink":{"source":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","target":"fc6763bf-a534-54bf-afcd-57ab285ff07d","guard":"else"}}},"c7c248f8-28b8-55be-9023-0991d44021e3":{"id":"c7c248f8-28b8-55be-9023-0991d44021e3","alias":"oa_response_delivery","name":"Chain involvement: Restore a safe supply","description":"","body":{"ChainInvolvement":{"source":"58bae2b0-f560-50f2-818d-19091d22d18a","target":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb"}}},"c8196d35-2168-5fef-8b03-ba0d139bc00f":{"id":"c8196d35-2168-5fef-8b03-ba0d139bc00f","alias":"oa_repair_then_report","name":"Sequence link: Report the measured result","description":"","body":{"SequenceLink":{"source":"c59432fe-6092-5ee0-908d-9dbf39476471","target":"df2fd3f8-6bc2-5380-a13f-36643ed35ac7","guard":""}}},"c8593670-8906-530f-b6a2-3ada77a9c219":{"id":"c8593670-8906-530f-b6a2-3ada77a9c219","alias":"oa_field_merge","name":"Continue","description":"","body":{"SequenceLink":{"source":"fc6763bf-a534-54bf-afcd-57ab285ff07d","target":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","guard":""}}},"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d":{"id":"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d","alias":"oa_repair_request","name":"Request field repair","description":"","body":{"Interaction":{"source":"61f7bbfb-74a4-5540-9182-2583dfb27a49","target":"a21465af-05f3-5fb5-8983-de26932422fb","items":["d736c7d6-d369-550a-8ba4-dae223e40bb3"]}}},"d8b6710a-e713-5979-934f-e5ca7d155bb4":{"id":"d8b6710a-e713-5979-934f-e5ca7d155bb4","alias":"sa_remote_path","name":"remote reset is authorized","description":"","body":{"SequenceLink":{"source":"30c8fad9-a49b-5692-9542-3148e76afd7b","target":"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","guard":"remote reset is authorized"}}},"e21d9a54-ae8e-5618-a4f8-67ee22b92638":{"id":"e21d9a54-ae8e-5618-a4f8-67ee22b92638","alias":"oa_include_triage","name":"Capability include: Assess an alarm","description":"","body":{"CapabilityInclude":{"source":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","target":"6a30b763-cc51-546d-907f-5c63657cfd03"}}},"e5279265-8eac-52e8-98dc-571b20475e1f":{"id":"e5279265-8eac-52e8-98dc-571b20475e1f","alias":"sa_remote_merge","name":"Continue","description":"","body":{"SequenceLink":{"source":"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","target":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","guard":""}}},"e53b7a40-e8a3-5b3f-826d-c2b5c164a84a":{"id":"e53b7a40-e8a3-5b3f-826d-c2b5c164a84a","alias":"sa_port_report_out","name":"Port allocation: Report repair result output","description":"","body":{"PortAllocation":{"source":"e6d69cbd-99d7-596b-bbe3-dada6118a600","target":"994faed7-dbc8-5b96-9d62-7604ac0fbc3a"}}},"f074e041-23cf-54ad-af9c-f171e30621e7":{"id":"f074e041-23cf-54ad-af9c-f171e30621e7","alias":"sa_repair_interface_item","name":"Repair operation contract","description":"","body":{"InterfaceItemAllocation":{"source":"a4b8942e-a975-5f88-ad14-8f38c345baac","target":"a962fc5e-3ab0-5296-8b0d-fd84633f9218","order":0,"transmission":"Synchronous","acquisition":"Accept"}}},"f3fe7690-734a-5877-8b57-a6599a4033c4":{"id":"f3fe7690-734a-5877-8b57-a6599a4033c4","alias":"sa_include_triage","name":"Capability include: Assess an alarm","description":"","body":{"CapabilityInclude":{"source":"81259051-370a-512d-a3b5-6420a6f933b6","target":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f"}}},"fbde9d5e-c7e9-55db-a2be-497345c491b3":{"id":"fbde9d5e-c7e9-55db-a2be-497345c491b3","alias":"oa_alarm_transition","name":"State transition: Awaiting repair","description":"","body":{"StateTransition":{"source":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","target":"58c15833-6e75-523a-b57f-a88f19f6d672","transition_kind":"External","triggers":["65d6b8d6-271a-5c84-8b42-abbe310c955e"],"effects":[],"trigger":"","guard":"","effect":""}}},"ff9897b3-a23a-5994-a5b3-99a5b4d34ceb":{"id":"ff9897b3-a23a-5994-a5b3-99a5b4d34ceb","alias":"sa_report_carriage","name":"Exchange allocation: Report repair result","description":"","body":{"ExchangeAllocation":{"source":"63009b5f-539e-5914-b630-ec6b7fefb4d5","target":"684eadc3-e670-5779-a60f-bbc9a5bfb062"}}},"ffdbfcd0-d423-5707-a880-0dfbe1400f72":{"id":"ffdbfcd0-d423-5707-a880-0dfbe1400f72","alias":"oa_assessment_support","name":"Capability involvement: Assess an alarm","description":"","body":{"CapabilityInvolvement":{"source":"61f7bbfb-74a4-5540-9182-2583dfb27a49","target":"6a30b763-cc51-546d-907f-5c63657cfd03"}}}},"diagrams":{"103ea62c-ac56-5827-94e7-cf09bca96ccc":{"id":"103ea62c-ac56-5827-94e7-cf09bca96ccc","alias":"oa_allocation_view","name":"1 · OA responsibility and repair traffic","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Oa","projection":"Allocation","view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":"All","participant_categories":"All","coverage":"All","work_contexts":"All","exchange_labels":"Name"},"nodes":{"202ebe37-ddb4-5099-8ce9-ec3e895ab9e9":{"id":"202ebe37-ddb4-5099-8ce9-ec3e895ab9e9","alias":"oa_allocation_view_oa_repair","element":"a21465af-05f3-5fb5-8983-de26932422fb","position":{"x":890.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"3191e05c-1c7f-5f0e-beb0-5f3bded54c48":{"id":"3191e05c-1c7f-5f0e-beb0-5f3bded54c48","alias":"oa_allocation_view_oa_control","element":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","position":{"x":60.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"5ae1c46d-59a3-50fd-8cc3-b292df21f951":{"id":"5ae1c46d-59a3-50fd-8cc3-b292df21f951","alias":"oa_allocation_view_oa_assess","element":"61f7bbfb-74a4-5540-9182-2583dfb27a49","position":{"x":100.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"7066f78c-9736-5349-b94a-0587331b980e":{"id":"7066f78c-9736-5349-b94a-0587331b980e","alias":"oa_allocation_view_oa_reset","element":"d0c8be87-d238-503a-a549-7558a210507f","position":{"x":100.0,"y":330.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"d27f28ef-f10a-5355-9a05-6f2fd39b7de6":{"id":"d27f28ef-f10a-5355-9a05-6f2fd39b7de6","alias":"oa_allocation_view_oa_technician","element":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","position":{"x":850.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"edd74060-ac61-5450-a57c-a6577daa5d50":{"id":"edd74060-ac61-5450-a57c-a6577daa5d50","alias":"oa_allocation_view_oa_confirm","element":"727c0b5c-8db6-5eb7-83d6-735519c5949f","position":{"x":100.0,"y":490.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]},"30d5baf9-6581-5cb6-846a-bcaa1e6cce63":{"id":"30d5baf9-6581-5cb6-846a-bcaa1e6cce63","alias":"sa_state_view","name":"5 · SA pressure supervision","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Sa","projection":{"StateMachine":{"machine":"132b3f28-3f88-5327-9868-8c8b645ed412"}},"view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":"All","participant_categories":"All","coverage":"All","work_contexts":"All","exchange_labels":"Name"},"nodes":{"55a74f91-2025-5001-8db8-9566b1dbe783":{"id":"55a74f91-2025-5001-8db8-9566b1dbe783","alias":"sa_state_view_sa_monitor_region","element":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","position":{"x":70.0,"y":95.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"57acbb71-ca86-57fc-ae90-42dad195f0e0":{"id":"57acbb71-ca86-57fc-ae90-42dad195f0e0","alias":"sa_state_view_sa_waiting","element":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","position":{"x":650.0,"y":200.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"5e2326a0-0f6c-5f8d-8a21-fdded18a9281":{"id":"5e2326a0-0f6c-5f8d-8a21-fdded18a9281","alias":"sa_state_view_sa_monitor_initial","element":"57eb5348-14d8-560e-996a-8dbf993243e2","position":{"x":100.0,"y":200.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"a676fbb9-0833-59a8-98cf-a10d8f4b7434":{"id":"a676fbb9-0833-59a8-98cf-a10d8f4b7434","alias":"sa_state_view_sa_monitor","element":"132b3f28-3f88-5327-9868-8c8b645ed412","position":{"x":30.0,"y":30.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"b3af7b04-5a45-5b82-ab69-7eada4b876f0":{"id":"b3af7b04-5a45-5b82-ab69-7eada4b876f0","alias":"sa_state_view_sa_monitoring","element":"8af21f9b-c21e-5aae-af0d-0958840f6655","position":{"x":220.0,"y":200.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]},"35d3c24b-289e-59e5-a610-8333e2c6a4bb":{"id":"35d3c24b-289e-59e5-a610-8333e2c6a4bb","alias":"sa_allocation_view","name":"2 · SA service boundary and functions","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Sa","projection":"Allocation","view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":"All","participant_categories":"All","coverage":"All","work_contexts":"All","exchange_labels":"Name"},"nodes":{"34630a18-41b0-5fdd-bff4-ee86e93e8651":{"id":"34630a18-41b0-5fdd-bff4-ee86e93e8651","alias":"sa_allocation_view_sa_repair","element":"9497e10f-04c4-5586-8738-2464a6f00bd4","position":{"x":890.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"60f6ad74-b69e-5aef-b832-f1bd60b903ae":{"id":"60f6ad74-b69e-5aef-b832-f1bd60b903ae","alias":"sa_allocation_view_sa_assess","element":"dddae020-a444-5d48-acc8-139d2696a672","position":{"x":100.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"73406244-ebd7-5995-86c7-e17c73c50b32":{"id":"73406244-ebd7-5995-86c7-e17c73c50b32","alias":"sa_allocation_view_sa_reset","element":"09342ccb-044b-5483-ac58-87dc3cf7831c","position":{"x":100.0,"y":330.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"7e3ba36f-bc68-5520-bdb9-77083bb7bba2":{"id":"7e3ba36f-bc68-5520-bdb9-77083bb7bba2","alias":"sa_allocation_view_sa_confirm","element":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","position":{"x":100.0,"y":490.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"8345c76a-8d85-5c31-902e-ec1cd33ed4a3":{"id":"8345c76a-8d85-5c31-902e-ec1cd33ed4a3","alias":"sa_allocation_view_sa_control","element":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","position":{"x":60.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"f7225d1c-e506-505d-bb20-916950269d4b":{"id":"f7225d1c-e506-505d-bb20-916950269d4b","alias":"sa_allocation_view_sa_technician","element":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","position":{"x":850.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]},"3e6ad194-61b5-584c-b0f0-a78a20af5781":{"id":"3e6ad194-61b5-584c-b0f0-a78a20af5781","alias":"sa_capability_view","name":"4 · SA mission and included capability","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Sa","projection":"Capabilities","view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":"All","participant_categories":"All","coverage":"All","work_contexts":"All","exchange_labels":"Name"},"nodes":{"069a3fb3-077c-59d8-91da-27b0665143c7":{"id":"069a3fb3-077c-59d8-91da-27b0665143c7","alias":"sa_capability_view_sa_triage","element":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f","position":{"x":800.0,"y":260.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"41ddb68b-bd2b-5f91-82eb-efde01157828":{"id":"41ddb68b-bd2b-5f91-82eb-efde01157828","alias":"sa_capability_view_sa_control","element":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","position":{"x":60.0,"y":60.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"4b814335-bf98-5b68-85d5-ea549766517a":{"id":"4b814335-bf98-5b68-85d5-ea549766517a","alias":"sa_capability_view_sa_mission","element":"5ad034b1-084d-5273-9e70-971671766132","position":{"x":420.0,"y":60.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"d3bc13f9-7726-5280-83fe-63f391c45afb":{"id":"d3bc13f9-7726-5280-83fe-63f391c45afb","alias":"sa_capability_view_sa_restore","element":"81259051-370a-512d-a3b5-6420a6f933b6","position":{"x":420.0,"y":260.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]},"50af4c9b-93ce-5ff5-a1f8-7a81eb97e779":{"id":"50af4c9b-93ce-5ff5-a1f8-7a81eb97e779","alias":"sa_service_view","name":"3 · SA service conversation only","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Sa","projection":"Allocation","view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":{"Any":[]},"participant_categories":{"Any":["781cbe75-410f-5cc5-aeb8-a43491f77b99"]},"coverage":"All","work_contexts":"All","exchange_labels":"NameAndItems"},"nodes":{"40210589-69f7-5209-b329-10bb83cf615c":{"id":"40210589-69f7-5209-b329-10bb83cf615c","alias":"sa_service_view_sa_technician","element":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","position":{"x":850.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"439f1e45-e5ed-567c-978b-4c93ef267db1":{"id":"439f1e45-e5ed-567c-978b-4c93ef267db1","alias":"sa_service_view_sa_assess","element":"dddae020-a444-5d48-acc8-139d2696a672","position":{"x":100.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"6f138672-149b-5f88-ab07-7fc413a42262":{"id":"6f138672-149b-5f88-ab07-7fc413a42262","alias":"sa_service_view_sa_confirm","element":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","position":{"x":100.0,"y":490.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"ae36489d-6ec8-5f1c-b603-8b497227efba":{"id":"ae36489d-6ec8-5f1c-b603-8b497227efba","alias":"sa_service_view_sa_repair","element":"9497e10f-04c4-5586-8738-2464a6f00bd4","position":{"x":890.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"d52da4e6-40b7-5dbc-84fb-80c443711c69":{"id":"d52da4e6-40b7-5dbc-84fb-80c443711c69","alias":"sa_service_view_sa_reset","element":"09342ccb-044b-5483-ac58-87dc3cf7831c","position":{"x":100.0,"y":330.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"f53d4352-b042-56a6-8b3e-c51cd27254f9":{"id":"f53d4352-b042-56a6-8b3e-c51cd27254f9","alias":"sa_service_view_sa_control","element":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","position":{"x":60.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]}},"artifact_links":{"f5922bf7-05d8-590f-86e9-1d09f37f4fa6":{"id":"f5922bf7-05d8-590f-86e9-1d09f37f4fa6","alias":"repair_test_evidence","name":"Repair conversation acceptance notes","description":"A local teaching artifact, not proof of a real valve's safety.","owner":"730b27ca-b039-5a3b-8dc6-03418f9061b3","relation":"Verifies","uri":"evidence/repair-check.md","revision":"lesson-1","fragment":"acceptance"}},"traces":{"0754be23-e4b8-53bc-b03c-89c2dbd80361":{"id":"0754be23-e4b8-53bc-b03c-89c2dbd80361","alias":"trace_oa_waiting","name":"Awaiting repair ↔ Awaiting repair","description":"","oa":"58c15833-6e75-523a-b57f-a88f19f6d672","sa":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","kind":"State","baseline":{"oa":{"name":"Awaiting repair","description":""},"sa":{"name":"Awaiting repair","description":""}}},"07a7b82a-b5a7-5737-abfa-09e422f7420e":{"id":"07a7b82a-b5a7-5737-abfa-09e422f7420e","alias":"trace_oa_start_monitoring","name":"State transition: Monitoring ↔ State transition: Monitoring","description":"","oa":"2b00270c-79a5-52a5-af96-33346bea531b","sa":"47730532-0372-5cc5-9d6d-0b8953aebdd8","kind":"Manual","baseline":{"oa":{"name":"State transition: Monitoring","description":""},"sa":{"name":"State transition: Monitoring","description":""}}},"0c7c8a06-163e-5b3e-8a98-e66e2ce8963b":{"id":"0c7c8a06-163e-5b3e-8a98-e66e2ce8963b","alias":"trace_oa_alarm_transition","name":"State transition: Awaiting repair ↔ State transition: Awaiting repair","description":"","oa":"fbde9d5e-c7e9-55db-a2be-497345c491b3","sa":"13c3bfa4-9254-5ab2-b96f-f65f402adf81","kind":"Manual","baseline":{"oa":{"name":"State transition: Awaiting repair","description":""},"sa":{"name":"State transition: Awaiting repair","description":""}}},"0c9de959-d366-5765-98eb-450ea27bd316":{"id":"0c9de959-d366-5765-98eb-450ea27bd316","alias":"trace_oa_merge","name":"Recovery path completed ↔ Recovery path completed","description":"","oa":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","sa":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","kind":"Sequence","baseline":{"oa":{"name":"Recovery path completed","description":""},"sa":{"name":"Recovery path completed","description":""}}},"0d905fbb-5b3c-56f0-9f11-a27091901eb0":{"id":"0d905fbb-5b3c-56f0-9f11-a27091901eb0","alias":"trace_oa_pressure_parameter","name":"Pressure before / after repair ↔ Pressure before / after repair","description":"","oa":"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7","sa":"bb12ba5d-aab5-5a1b-99de-c767f5365b57","kind":"Item","baseline":{"oa":{"name":"Pressure before / after repair","description":""},"sa":{"name":"Pressure before / after repair","description":""}}},"0fbef164-b5d3-58ba-ba41-54d0e63709ab":{"id":"0fbef164-b5d3-58ba-ba41-54d0e63709ab","alias":"trace_oa_restore","name":"Restore a safe supply ↔ Restore a safe supply","description":"","oa":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","sa":"81259051-370a-512d-a3b5-6420a6f933b6","kind":"Capability","baseline":{"oa":{"name":"Restore a safe supply","description":""},"sa":{"name":"Restore a safe supply","description":""}}},"12ec320f-2e14-5a5a-8c6b-bd2b6471dae9":{"id":"12ec320f-2e14-5a5a-8c6b-bd2b6471dae9","alias":"trace_oa_monitoring","name":"Monitoring ↔ Monitoring","description":"","oa":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","sa":"8af21f9b-c21e-5aae-af0d-0958840f6655","kind":"State","baseline":{"oa":{"name":"Monitoring","description":""},"sa":{"name":"Monitoring","description":""}}},"154abfce-c311-52d1-85d1-3f4c85203b26":{"id":"154abfce-c311-52d1-85d1-3f4c85203b26","alias":"trace_oa_confirm_step","name":"Confirm safe pressure ↔ Confirm safe pressure","description":"","oa":"e00594a3-6122-5a6b-b3c2-ecb5506c741d","sa":"47bec4f9-d6d0-5ed1-adca-fa0d960dc416","kind":"Sequence","baseline":{"oa":{"name":"Confirm safe pressure","description":""},"sa":{"name":"Confirm safe pressure","description":""}}},"1b788e74-36b2-5c17-a936-642dbe51ca3c":{"id":"1b788e74-36b2-5c17-a936-642dbe51ca3c","alias":"trace_oa_remote_merge","name":"Continue ↔ Continue","description":"","oa":"bac43d3b-910b-5bdc-be9b-f78cf973e1ed","sa":"e5279265-8eac-52e8-98dc-571b20475e1f","kind":"Manual","baseline":{"oa":{"name":"Continue","description":""},"sa":{"name":"Continue","description":""}}},"208753e0-9151-50d8-86ca-29fc28eca80b":{"id":"208753e0-9151-50d8-86ca-29fc28eca80b","alias":"trace_oa_monitor_region","name":"Supervision cycle ↔ Supervision cycle","description":"","oa":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","sa":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","kind":"State","baseline":{"oa":{"name":"Supervision cycle","description":""},"sa":{"name":"Supervision cycle","description":""}}},"241dfdac-2450-5704-a4cb-9f1047db1b6d":{"id":"241dfdac-2450-5704-a4cb-9f1047db1b6d","alias":"trace_oa_caller","name":"Controller ↔ Controller","description":"","oa":"41859a65-ded2-547b-ab03-14e2fa740cf9","sa":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","kind":"Scenario","baseline":{"oa":{"name":"Controller","description":""},"sa":{"name":"Controller","description":""}}},"2e849e31-35aa-5aef-a989-26948038e52b":{"id":"2e849e31-35aa-5aef-a989-26948038e52b","alias":"trace_oa_field_path","name":"else ↔ else","description":"","oa":"c1adbbd0-a762-5ee3-8b9a-5c18af377771","sa":"1bbd5957-1173-51d8-97e3-ba4f084227ae","kind":"Manual","baseline":{"oa":{"name":"else","description":""},"sa":{"name":"else","description":""}}},"2fdcbc6f-526e-5a4e-bde5-314cf0cf3ef3":{"id":"2fdcbc6f-526e-5a4e-bde5-314cf0cf3ef3","alias":"trace_oa_confirm_allocation","name":"Allocation: Confirm safe pressure ↔ Allocation: Confirm safe pressure","description":"","oa":"bfd4326e-ea65-5269-b5e6-e063a355d1e9","sa":"b76bf8de-2fa4-563f-a540-dd30f30e6c49","kind":"Manual","baseline":{"oa":{"name":"Allocation: Confirm safe pressure","description":""},"sa":{"name":"Allocation: Confirm safe pressure","description":""}}},"3694c752-ba80-5702-a7d7-9cc66b6b01d8":{"id":"3694c752-ba80-5702-a7d7-9cc66b6b01d8","alias":"trace_oa_conversation","name":"Repair request and measured reply ↔ Repair request and measured reply","description":"","oa":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","sa":"730b27ca-b039-5a3b-8dc6-03418f9061b3","kind":"Scenario","baseline":{"oa":{"name":"Repair request and measured reply","description":""},"sa":{"name":"Repair request and measured reply","description":""}}},"3714d547-006f-5c3a-97f8-175ccc23d994":{"id":"3714d547-006f-5c3a-97f8-175ccc23d994","alias":"trace_oa_repair_allocation","name":"Allocation: Repair valve in the field ↔ Allocation: Repair valve in the field","description":"","oa":"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2","sa":"725f2e1b-aa2c-5615-9b1f-28da178168fa","kind":"Manual","baseline":{"oa":{"name":"Allocation: Repair valve in the field","description":""},"sa":{"name":"Allocation: Repair valve in the field","description":""}}},"3a33de40-20a3-5252-899c-c12dc35e9783":{"id":"3a33de40-20a3-5252-899c-c12dc35e9783","alias":"trace_oa_assessment_action","name":"Assess pressure alarm ↔ Assess pressure alarm","description":"","oa":"942975b8-0bef-5ae8-9fcb-c37497833fb0","sa":"bae5b192-5b8e-51c6-82ae-2331af0d33bf","kind":"Sequence","baseline":{"oa":{"name":"Assess pressure alarm","description":""},"sa":{"name":"Assess pressure alarm","description":""}}},"3e7bde54-f9c1-549f-9e5b-2ce1ecb685a7":{"id":"3e7bde54-f9c1-549f-9e5b-2ce1ecb685a7","alias":"trace_oa_repair_traffic","name":"Repair work exchanges ↔ Repair work exchanges","description":"","oa":"9349b353-53f2-56f8-b571-a05b09335cdf","sa":"a9a47e48-100c-57a8-95f0-7fe24da94f94","kind":"Manual","baseline":{"oa":{"name":"Repair work exchanges","description":""},"sa":{"name":"Repair work exchanges","description":""}}},"424eca39-1c29-5a2f-b9ee-33dd018926aa":{"id":"424eca39-1c29-5a2f-b9ee-33dd018926aa","alias":"trace_oa_repair_report","name":"Report repair result ↔ Report repair result","description":"","oa":"b436d0b3-c824-5a96-af6b-2c269816d1cc","sa":"684eadc3-e670-5779-a60f-bbc9a5bfb062","kind":"Exchange","baseline":{"oa":{"name":"Report repair result","description":""},"sa":{"name":"Report repair result","description":""}}},"435bae4c-cf6d-59f3-9eb5-d660ebeec079":{"id":"435bae4c-cf6d-59f3-9eb5-d660ebeec079","alias":"trace_oa_full_scenario","name":"Restore supply through field repair ↔ Restore supply through field repair","description":"","oa":"d6f881a4-95da-54e9-ad97-1b8965532629","sa":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","kind":"Scenario","baseline":{"oa":{"name":"Restore supply through field repair","description":""},"sa":{"name":"Restore supply through field repair","description":""}}},"48d243f0-553f-507e-acb0-9474ae156b63":{"id":"48d243f0-553f-507e-acb0-9474ae156b63","alias":"trace_oa_monitor_initial","name":"Start ↔ Start","description":"","oa":"a7ffb869-9dde-5e76-b276-c719c5c143a9","sa":"57eb5348-14d8-560e-996a-8dbf993243e2","kind":"State","baseline":{"oa":{"name":"Start","description":""},"sa":{"name":"Start","description":""}}},"5309f955-53fd-5ff4-9c0a-91737e947341":{"id":"5309f955-53fd-5ff4-9c0a-91737e947341","alias":"trace_oa_assess","name":"Assess pressure alarm ↔ Assess pressure alarm","description":"","oa":"61f7bbfb-74a4-5540-9182-2583dfb27a49","sa":"dddae020-a444-5d48-acc8-139d2696a672","kind":"Refinement","baseline":{"oa":{"name":"Assess pressure alarm","description":""},"sa":{"name":"Assess pressure alarm","description":""}}},"595b5729-ccd9-5291-b5d9-30d8c8bd9dfa":{"id":"595b5729-ccd9-5291-b5d9-30d8c8bd9dfa","alias":"trace_oa_reply","name":"Return pressure after repair ↔ Return pressure after repair","description":"","oa":"cc2d497a-fd15-5455-9ee5-e70eb95811d8","sa":"4e1c0a56-ce80-5f13-a93a-6956de54880c","kind":"Scenario","baseline":{"oa":{"name":"Return pressure after repair","description":""},"sa":{"name":"Return pressure after repair","description":""}}},"5b96bfed-63e2-5d7f-b882-91e8b81f8efe":{"id":"5b96bfed-63e2-5d7f-b882-91e8b81f8efe","alias":"trace_oa_assessment_delivery","name":"Chain involvement: Assess an alarm ↔ Chain involvement: Assess an alarm","description":"","oa":"628cb4fc-fe63-5f6b-b364-6268f26b5740","sa":"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57","kind":"Manual","baseline":{"oa":{"name":"Chain involvement: Assess an alarm","description":""},"sa":{"name":"Chain involvement: Assess an alarm","description":""}}},"6acd072d-431e-5881-ab20-1813b4fda0c5":{"id":"6acd072d-431e-5881-ab20-1813b4fda0c5","alias":"trace_oa_triage","name":"Assess an alarm ↔ Assess an alarm","description":"","oa":"6a30b763-cc51-546d-907f-5c63657cfd03","sa":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f","kind":"Capability","baseline":{"oa":{"name":"Assess an alarm","description":""},"sa":{"name":"Assess an alarm","description":""}}},"6ca4c78a-a5f2-5470-b401-732f5a8825d0":{"id":"6ca4c78a-a5f2-5470-b401-732f5a8825d0","alias":"trace_oa_assessment_procedure","name":"Assess an alarm procedure ↔ Assess an alarm procedure","description":"","oa":"022d3cfa-bbaf-5e13-924a-8e55099b8745","sa":"acd5a018-f559-5298-a40d-1cf6e1353e74","kind":"Sequence","baseline":{"oa":{"name":"Assess an alarm procedure","description":""},"sa":{"name":"Assess an alarm procedure","description":""}}},"6e13cf86-7242-5e33-8912-b037cf6e8c87":{"id":"6e13cf86-7242-5e33-8912-b037cf6e8c87","alias":"trace_oa_assessment_support","name":"Capability involvement: Assess an alarm ↔ Capability involvement: Assess an alarm","description":"","oa":"ffdbfcd0-d423-5707-a880-0dfbe1400f72","sa":"93eaad8d-83b7-5980-b9bb-86c9e3f31da4","kind":"Manual","baseline":{"oa":{"name":"Capability involvement: Assess an alarm","description":""},"sa":{"name":"Capability involvement: Assess an alarm","description":""}}},"70c90b0c-85ce-574a-a217-f0d19fad30e1":{"id":"70c90b0c-85ce-574a-a217-f0d19fad30e1","alias":"trace_oa_response_delivery","name":"Chain involvement: Restore a safe supply ↔ Chain involvement: Restore a safe supply","description":"","oa":"c7c248f8-28b8-55be-9023-0991d44021e3","sa":"66efc484-53c7-51a3-89e9-422429344b38","kind":"Manual","baseline":{"oa":{"name":"Chain involvement: Restore a safe supply","description":""},"sa":{"name":"Chain involvement: Restore a safe supply","description":""}}},"77073fcb-53aa-5f06-987a-0317cbb6971d":{"id":"77073fcb-53aa-5f06-987a-0317cbb6971d","alias":"trace_oa_include_triage","name":"Capability include: Assess an alarm ↔ Capability include: Assess an alarm","description":"","oa":"e21d9a54-ae8e-5618-a4f8-67ee22b92638","sa":"f3fe7690-734a-5877-8b57-a6599a4033c4","kind":"Manual","baseline":{"oa":{"name":"Capability include: Assess an alarm","description":""},"sa":{"name":"Capability include: Assess an alarm","description":""}}},"7a6b4b9c-4220-546a-a752-1587c2881fe1":{"id":"7a6b4b9c-4220-546a-a752-1587c2881fe1","alias":"trace_oa_use_field","name":"Use the field repair procedure ↔ Use the field repair procedure","description":"","oa":"fc6763bf-a534-54bf-afcd-57ab285ff07d","sa":"d5e61c5d-510b-5091-a878-da46f3a9e152","kind":"Sequence","baseline":{"oa":{"name":"Use the field repair procedure","description":""},"sa":{"name":"Use the field repair procedure","description":""}}},"82a5be1a-92a8-578d-9448-086062a20d8f":{"id":"82a5be1a-92a8-578d-9448-086062a20d8f","alias":"trace_oa_reset","name":"Reset valve remotely ↔ Reset valve remotely","description":"","oa":"d0c8be87-d238-503a-a549-7558a210507f","sa":"09342ccb-044b-5483-ac58-87dc3cf7831c","kind":"Refinement","baseline":{"oa":{"name":"Reset valve remotely","description":""},"sa":{"name":"Reset valve remotely","description":""}}},"82cca563-9d5d-5479-aa1a-9db03e9674d1":{"id":"82cca563-9d5d-5479-aa1a-9db03e9674d1","alias":"trace_oa_restore_work","name":"Restore safe pressure ↔ Restore safe pressure","description":"","oa":"1b91f8a7-0bdb-514e-b1cd-955658e09927","sa":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","kind":"Refinement","baseline":{"oa":{"name":"Restore safe pressure","description":""},"sa":{"name":"Restore safe pressure","description":""}}},"8d693d90-5017-56af-b056-d29d3cb46baa":{"id":"8d693d90-5017-56af-b056-d29d3cb46baa","alias":"trace_oa_mission_participant","name":"Mission involvement: Maintain safe water supply ↔ Mission involvement: Maintain safe water supply","description":"","oa":"0c4c9e58-ff32-5c00-b82a-d408a4be0183","sa":"1c1e5634-ba8c-591f-b143-90a27cdc6cd2","kind":"Manual","baseline":{"oa":{"name":"Mission involvement: Maintain safe water supply","description":""},"sa":{"name":"Mission involvement: Maintain safe water supply","description":""}}},"98ef05b5-5381-5d35-a433-ebab55e9f382":{"id":"98ef05b5-5381-5d35-a433-ebab55e9f382","alias":"trace_oa_reset_allocation","name":"Allocation: Reset valve remotely ↔ Allocation: Reset valve remotely","description":"","oa":"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a","sa":"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3","kind":"Manual","baseline":{"oa":{"name":"Allocation: Reset valve remotely","description":""},"sa":{"name":"Allocation: Reset valve remotely","description":""}}},"a106d183-c239-5c9f-b1f1-141af19fc778":{"id":"a106d183-c239-5c9f-b1f1-141af19fc778","alias":"trace_oa_confirm_path","name":"Continue ↔ Continue","description":"","oa":"229ee94f-d147-50f6-9769-b5bd0c03a084","sa":"1e738f27-a3a1-526d-b330-6384088b9689","kind":"Manual","baseline":{"oa":{"name":"Continue","description":""},"sa":{"name":"Continue","description":""}}},"a5c1eb01-a95f-5f7a-9742-7f201493d7aa":{"id":"a5c1eb01-a95f-5f7a-9742-7f201493d7aa","alias":"trace_oa_assess_then_decide","name":"Continue ↔ Continue","description":"","oa":"109e2d6b-7e86-5934-93a5-fab56eced84e","sa":"9d4a131f-36ad-5125-b21f-c3dd033b8c82","kind":"Manual","baseline":{"oa":{"name":"Continue","description":""},"sa":{"name":"Continue","description":""}}},"aa164208-394d-5bc7-8462-b0043f682aad":{"id":"aa164208-394d-5bc7-8462-b0043f682aad","alias":"trace_oa_mission_delivery","name":"Mission capability: Restore a safe supply ↔ Mission capability: Restore a safe supply","description":"","oa":"1f8b1898-65f6-5360-99cf-b78a71bd50ec","sa":"a0902e0f-3d18-576a-9aca-975a136dfdd7","kind":"Manual","baseline":{"oa":{"name":"Mission capability: Restore a safe supply","description":""},"sa":{"name":"Mission capability: Restore a safe supply","description":""}}},"aba528ea-e396-582a-bfba-f6e2212d391a":{"id":"aba528ea-e396-582a-bfba-f6e2212d391a","alias":"trace_oa_control","name":"Control room ↔ Pressure coordination service","description":"","oa":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","sa":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","kind":"Participant","baseline":{"oa":{"name":"Control room","description":""},"sa":{"name":"Pressure coordination service","description":""}}},"ac3aa6b0-568e-5a3f-963a-172aa3cfc7a4":{"id":"ac3aa6b0-568e-5a3f-963a-172aa3cfc7a4","alias":"trace_oa_repair_step","name":"Repair the valve ↔ Repair the valve","description":"","oa":"c59432fe-6092-5ee0-908d-9dbf39476471","sa":"0f195fea-3493-5ebd-966d-da9eddeb05d7","kind":"Sequence","baseline":{"oa":{"name":"Repair the valve","description":""},"sa":{"name":"Repair the valve","description":""}}},"acdbee9c-5017-5154-804e-50801f0376ec":{"id":"acdbee9c-5017-5154-804e-50801f0376ec","alias":"trace_oa_assess_allocation","name":"Allocation: Assess pressure alarm ↔ Allocation: Assess pressure alarm","description":"","oa":"594c61cd-94e0-5c07-890d-edfd520d7df9","sa":"9b9356d7-2db2-5a94-a47e-ea892cf02afe","kind":"Manual","baseline":{"oa":{"name":"Allocation: Assess pressure alarm","description":""},"sa":{"name":"Allocation: Assess pressure alarm","description":""}}},"ad697c00-07d9-5799-89b3-2c78da8dff4d":{"id":"ad697c00-07d9-5799-89b3-2c78da8dff4d","alias":"trace_oa_request_step","name":"Request the field repair ↔ Request the field repair","description":"","oa":"5ba8079c-2dbe-5e98-ae82-2b60c6020a02","sa":"40d94322-baa2-5c81-b261-ff47cdc33782","kind":"Sequence","baseline":{"oa":{"name":"Request the field repair","description":""},"sa":{"name":"Request the field repair","description":""}}},"b13452bb-1a55-5ad6-b6d9-a37fb34e8d13":{"id":"b13452bb-1a55-5ad6-b6d9-a37fb34e8d13","alias":"trace_oa_repair","name":"Repair valve in the field ↔ Repair valve in the field","description":"","oa":"a21465af-05f3-5fb5-8983-de26932422fb","sa":"9497e10f-04c4-5586-8738-2464a6f00bd4","kind":"Refinement","baseline":{"oa":{"name":"Repair valve in the field","description":""},"sa":{"name":"Repair valve in the field","description":""}}},"b53863a2-ed80-5f98-ad3c-50e1b821066d":{"id":"b53863a2-ed80-5f98-ad3c-50e1b821066d","alias":"trace_oa_monitor","name":"Pressure supervision ↔ Pressure supervision","description":"","oa":"1970608f-85d1-5234-ac86-5e2b0df27dc3","sa":"132b3f28-3f88-5327-9868-8c8b645ed412","kind":"State","baseline":{"oa":{"name":"Pressure supervision","description":""},"sa":{"name":"Pressure supervision","description":""}}},"b97749d4-f9ad-5fb7-9d78-bc60a74e98eb":{"id":"b97749d4-f9ad-5fb7-9d78-bc60a74e98eb","alias":"trace_oa_high_pressure","name":"Pressure alarm detected ↔ Pressure alarm detected","description":"","oa":"65d6b8d6-271a-5c84-8b42-abbe310c955e","sa":"01490fa8-2f01-5ac8-9722-d55d45414379","kind":"State","baseline":{"oa":{"name":"Pressure alarm detected","description":""},"sa":{"name":"Pressure alarm detected","description":""}}},"bb72b2c2-6e32-5f65-9d8e-b33c1a65da37":{"id":"bb72b2c2-6e32-5f65-9d8e-b33c1a65da37","alias":"trace_oa_field_procedure","name":"Field repair procedure ↔ Field repair procedure","description":"","oa":"5d3af417-244c-54bb-9588-16daedda4e1f","sa":"93eb6479-54e9-59cb-ac7b-16912347bfc0","kind":"Sequence","baseline":{"oa":{"name":"Field repair procedure","description":""},"sa":{"name":"Field repair procedure","description":""}}},"bbf6f1a1-cb2b-5632-8ec0-bf4b8ef1a941":{"id":"bbf6f1a1-cb2b-5632-8ec0-bf4b8ef1a941","alias":"trace_oa_decision","name":"Can a remote reset safely recover pressure? ↔ Can a remote reset safely recover pressure?","description":"","oa":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","sa":"30c8fad9-a49b-5692-9542-3148e76afd7b","kind":"Sequence","baseline":{"oa":{"name":"Can a remote reset safely recover pressure?","description":""},"sa":{"name":"Can a remote reset safely recover pressure?","description":""}}},"c132a0df-1270-55a8-ac4e-6e5075823dc1":{"id":"c132a0df-1270-55a8-ac4e-6e5075823dc1","alias":"trace_oa_outer_technician","name":"Technician ↔ Technician","description":"","oa":"fffff882-78fd-5415-928d-c1ef7fac6576","sa":"155e4fe4-9e3b-5f4e-b886-28abcc3f086b","kind":"Scenario","baseline":{"oa":{"name":"Technician","description":""},"sa":{"name":"Technician","description":""}}},"c47cf0b4-fe15-5175-bd62-5292e43adc39":{"id":"c47cf0b4-fe15-5175-bd62-5292e43adc39","alias":"trace_oa_normal_transition","name":"State transition: Monitoring ↔ State transition: Monitoring","description":"","oa":"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97","sa":"6e2c1b47-764c-577a-b325-ff66dd2a2768","kind":"Manual","baseline":{"oa":{"name":"State transition: Monitoring","description":""},"sa":{"name":"State transition: Monitoring","description":""}}},"c5051628-b7af-5fb1-a014-bb60a0b46e03":{"id":"c5051628-b7af-5fb1-a014-bb60a0b46e03","alias":"trace_oa_responder","name":"Technician ↔ Technician","description":"","oa":"fc81c5f0-0442-5b88-992b-e5b10f351c59","sa":"6249b54a-e396-5338-82b9-89266c55670d","kind":"Scenario","baseline":{"oa":{"name":"Technician","description":""},"sa":{"name":"Technician","description":""}}},"c987bd0f-87f6-5550-945d-2a42450fe1c5":{"id":"c987bd0f-87f6-5550-945d-2a42450fe1c5","alias":"trace_oa_mission","name":"Maintain safe water supply ↔ Maintain safe water supply","description":"","oa":"c9c61f50-06e0-5d17-973d-dcc57cd5cc90","sa":"5ad034b1-084d-5273-9e70-971671766132","kind":"Mission","baseline":{"oa":{"name":"Maintain safe water supply","description":""},"sa":{"name":"Maintain safe water supply","description":""}}},"c9d65349-3400-58eb-8a55-57fa02de4b67":{"id":"c9d65349-3400-58eb-8a55-57fa02de4b67","alias":"trace_oa_contact","name":"Technician service conversation ↔ Technician service conversation","description":"","oa":"27b47887-baf0-518b-bf87-f5acbf7d0b93","sa":"63009b5f-539e-5914-b630-ec6b7fefb4d5","kind":"Exchange","baseline":{"oa":{"name":"Technician service conversation","description":""},"sa":{"name":"Technician service conversation","description":""}}},"cf92cedf-ea1a-510c-9bc5-89c16d60e8d2":{"id":"cf92cedf-ea1a-510c-9bc5-89c16d60e8d2","alias":"trace_oa_repair_operation","name":"Valve repair ↔ Valve repair","description":"","oa":"d736c7d6-d369-550a-8ba4-dae223e40bb3","sa":"a962fc5e-3ab0-5296-8b0d-fd84633f9218","kind":"Item","baseline":{"oa":{"name":"Valve repair","description":""},"sa":{"name":"Valve repair","description":""}}},"d32dd433-9c9e-5b57-9355-2970cc44a5f2":{"id":"d32dd433-9c9e-5b57-9355-2970cc44a5f2","alias":"trace_oa_field_merge","name":"Continue ↔ Continue","description":"","oa":"c8593670-8906-530f-b6a2-3ada77a9c219","sa":"0f6ac3fb-4ad6-581e-ad14-336472072d5e","kind":"Manual","baseline":{"oa":{"name":"Continue","description":""},"sa":{"name":"Continue","description":""}}},"d3626818-4846-5893-9c02-3407cdba7f3c":{"id":"d3626818-4846-5893-9c02-3407cdba7f3c","alias":"trace_oa_response","name":"Handle a pressure alarm ↔ Handle a pressure alarm","description":"","oa":"58bae2b0-f560-50f2-818d-19091d22d18a","sa":"5139ce73-56fd-5875-ba3a-e569fc890231","kind":"Sequence","baseline":{"oa":{"name":"Handle a pressure alarm","description":""},"sa":{"name":"Handle a pressure alarm","description":""}}},"d47d3c36-50fb-5189-b801-d6fd1694bd49":{"id":"d47d3c36-50fb-5189-b801-d6fd1694bd49","alias":"trace_oa_technician","name":"Field technician ↔ Field technician","description":"","oa":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","sa":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","kind":"Participant","baseline":{"oa":{"name":"Field technician","description":""},"sa":{"name":"Field technician","description":""}}},"d7773ff5-cef5-50c1-8f9d-c5659115e1f0":{"id":"d7773ff5-cef5-50c1-8f9d-c5659115e1f0","alias":"trace_oa_confirm","name":"Confirm safe pressure ↔ Confirm safe pressure","description":"","oa":"727c0b5c-8db6-5eb7-83d6-735519c5949f","sa":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","kind":"Refinement","baseline":{"oa":{"name":"Confirm safe pressure","description":""},"sa":{"name":"Confirm safe pressure","description":""}}},"d9d47371-e98d-5d29-9df7-4de2d28a5c73":{"id":"d9d47371-e98d-5d29-9df7-4de2d28a5c73","alias":"trace_oa_pressure","name":"Measured pressure ↔ Measured pressure","description":"","oa":"e7824764-5db9-5384-8198-2fbaea2b10b2","sa":"87d0a95b-af1b-5352-b753-e4c6533671a5","kind":"Item","baseline":{"oa":{"name":"Measured pressure","description":""},"sa":{"name":"Measured pressure","description":""}}},"da8efc3c-78df-5b10-b2e5-1e28d6d99e86":{"id":"da8efc3c-78df-5b10-b2e5-1e28d6d99e86","alias":"trace_oa_repair_request","name":"Request field repair ↔ Request field repair","description":"","oa":"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d","sa":"93474111-f23e-56c1-b61b-b7c2396b91bd","kind":"Exchange","baseline":{"oa":{"name":"Request field repair","description":""},"sa":{"name":"Request field repair","description":""}}},"e63b14d2-f408-56a2-aec4-be20cf4ace73":{"id":"e63b14d2-f408-56a2-aec4-be20cf4ace73","alias":"trace_oa_report_step","name":"Report the measured result ↔ Report the measured result","description":"","oa":"df2fd3f8-6bc2-5380-a13f-36643ed35ac7","sa":"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac","kind":"Sequence","baseline":{"oa":{"name":"Report the measured result","description":""},"sa":{"name":"Report the measured result","description":""}}},"e848da41-445e-5e3c-8b4e-ef53fdddf1e1":{"id":"e848da41-445e-5e3c-8b4e-ef53fdddf1e1","alias":"trace_oa_assess_step","name":"Assess the alarm ↔ Assess the alarm","description":"","oa":"0b07b9ed-492d-57f6-b0b1-ce8a709238a7","sa":"9024243c-ccc1-5edb-8477-2aa16e5e9a50","kind":"Sequence","baseline":{"oa":{"name":"Assess the alarm","description":""},"sa":{"name":"Assess the alarm","description":""}}},"e96ff119-bb4d-5fd9-9ab7-2ede0d3fd418":{"id":"e96ff119-bb4d-5fd9-9ab7-2ede0d3fd418","alias":"trace_oa_contact_category","name":"Field contact ↔ Field contact","description":"","oa":"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771","sa":"781cbe75-410f-5cc5-aeb8-a43491f77b99","kind":"Manual","baseline":{"oa":{"name":"Field contact","description":""},"sa":{"name":"Field contact","description":""}}},"eee79ec1-41d7-5374-986e-995a56b9026f":{"id":"eee79ec1-41d7-5374-986e-995a56b9026f","alias":"trace_oa_remote_path","name":"remote reset is authorized ↔ remote reset is authorized","description":"","oa":"76218d89-68fd-531d-b35b-90c5b769a5ef","sa":"d8b6710a-e713-5979-934f-e5ca7d155bb4","kind":"Manual","baseline":{"oa":{"name":"remote reset is authorized","description":""},"sa":{"name":"remote reset is authorized","description":""}}},"f0cc86e5-f8fd-5091-a40d-dbfb6515072f":{"id":"f0cc86e5-f8fd-5091-a40d-dbfb6515072f","alias":"trace_oa_call","name":"Request valve repair ↔ Request valve repair","description":"","oa":"b97437c6-cd7a-5a05-b537-b30a17dd936a","sa":"8bab4783-a098-5984-9e36-493957caf26c","kind":"Scenario","baseline":{"oa":{"name":"Request valve repair","description":""},"sa":{"name":"Request valve repair","description":""}}},"f2b7050c-629d-533f-b873-bffc33e072f7":{"id":"f2b7050c-629d-533f-b873-bffc33e072f7","alias":"trace_oa_request_then_repair","name":"Sequence link: Repair the valve ↔ Sequence link: Repair the valve","description":"","oa":"3f54d890-4ca5-5e36-873b-abb5c92d578c","sa":"6a6d968f-26d6-5dbb-b721-5a27d362779a","kind":"Manual","baseline":{"oa":{"name":"Sequence link: Repair the valve","description":""},"sa":{"name":"Sequence link: Repair the valve","description":""}}},"f5733d3f-eee3-5cf7-a422-5edd2054d6a6":{"id":"f5733d3f-eee3-5cf7-a422-5edd2054d6a6","alias":"trace_oa_use_conversation","name":"Use the reviewed repair conversation ↔ Use the reviewed repair conversation","description":"","oa":"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5","sa":"1c9da843-e2d3-5591-8e3f-db083a42867e","kind":"Scenario","baseline":{"oa":{"name":"Use the reviewed repair conversation","description":""},"sa":{"name":"Use the reviewed repair conversation","description":""}}},"f8d34715-1dc8-504b-acdf-78b770aad1e8":{"id":"f8d34715-1dc8-504b-acdf-78b770aad1e8","alias":"trace_oa_repair_then_report","name":"Sequence link: Report the measured result ↔ Sequence link: Report the measured result","description":"","oa":"c8196d35-2168-5fef-8b03-ba0d139bc00f","sa":"7fb30b1d-195c-5f0e-a19c-a536f519a899","kind":"Manual","baseline":{"oa":{"name":"Sequence link: Report the measured result","description":""},"sa":{"name":"Sequence link: Report the measured result","description":""}}},"fb02420d-b066-5773-87c1-198a056e0731":{"id":"fb02420d-b066-5773-87c1-198a056e0731","alias":"trace_oa_assess_on_entry","name":"Assess when repair is needed ↔ Assess when repair is needed","description":"","oa":"7fa37e63-db65-5aa7-88f2-31ff4347a787","sa":"a887f96a-37cb-5891-8070-011fa276e5b5","kind":"Manual","baseline":{"oa":{"name":"Assess when repair is needed","description":""},"sa":{"name":"Assess when repair is needed","description":""}}},"fd195498-dbba-523b-94d0-49f3b9531a3e":{"id":"fd195498-dbba-523b-94d0-49f3b9531a3e","alias":"trace_oa_outer_controller","name":"Controller ↔ Controller","description":"","oa":"2011b3ac-614b-5a47-8891-7ff81965f425","sa":"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023","kind":"Scenario","baseline":{"oa":{"name":"Controller","description":""},"sa":{"name":"Controller","description":""}}},"ff84fc06-6f99-5cf3-b73d-236e9eff98a3":{"id":"ff84fc06-6f99-5cf3-b73d-236e9eff98a3","alias":"trace_oa_reset_step","name":"Try the authorized remote reset ↔ Try the authorized remote reset","description":"","oa":"d2026fc2-74a8-5e22-9942-ff3eb68a3677","sa":"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","kind":"Sequence","baseline":{"oa":{"name":"Try the authorized remote reset","description":""},"sa":{"name":"Try the authorized remote reset","description":""}}}}},"source_project":{"entry":"project.arcadia","files":{"oa/activities/activity_oa_restore_work.arcadia":"oa_activity oa_restore_work \"Restore safe pressure\" id \"1b91f8a7-0bdb-514e-b1cd-955658e09927\" {\n}\n\noa_activity oa_assess \"Assess pressure alarm\" id \"61f7bbfb-74a4-5540-9182-2583dfb27a49\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_confirm \"Confirm safe pressure\" id \"727c0b5c-8db6-5eb7-83d6-735519c5949f\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_repair \"Repair valve in the field\" id \"a21465af-05f3-5fb5-8983-de26932422fb\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_reset \"Reset valve remotely\" id \"d0c8be87-d238-503a-a549-7558a210507f\" {\n parent @oa_restore_work;\n}\n\ncapability_involvement oa_assessment_support \"Capability involvement: Assess an alarm\" id \"ffdbfcd0-d423-5707-a880-0dfbe1400f72\" {\n source @oa_assess;\n target @oa_triage;\n}\n\ninteraction oa_repair_request \"Request field repair\" id \"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d\" {\n items [@oa_repair_operation];\n source @oa_assess;\n target @oa_repair;\n}\n\ninteraction oa_repair_report \"Report repair result\" id \"b436d0b3-c824-5a96-af6b-2c269816d1cc\" {\n items [@oa_repair_operation];\n source @oa_repair;\n target @oa_confirm;\n}\n\n","oa/behavior/process_oa_assessment_procedure.arcadia":"oa_process oa_assessment_procedure \"Assess an alarm procedure\" id \"022d3cfa-bbaf-5e13-924a-8e55099b8745\" {\n steps [@oa_assessment_action];\n}\n\noa_occurrence oa_assessment_action \"Assess pressure alarm\" id \"942975b8-0bef-5ae8-9fcb-c37497833fb0\" {\n body {\n Action {\n action @oa_assess;\n };\n };\n parent @oa_assessment_procedure;\n}\n\nchain_involvement oa_assessment_delivery \"Chain involvement: Assess an alarm\" id \"628cb4fc-fe63-5f6b-b364-6268f26b5740\" {\n source @oa_assessment_procedure;\n target @oa_triage;\n}\n\n","oa/behavior/process_oa_field_procedure.arcadia":"oa_process oa_field_procedure \"Field repair procedure\" id \"5d3af417-244c-54bb-9588-16daedda4e1f\" {\n steps [@oa_request_step, @oa_repair_step, @oa_report_step];\n}\n\noa_occurrence oa_repair_step \"Repair the valve\" id \"c59432fe-6092-5ee0-908d-9dbf39476471\" {\n body {\n Action {\n action @oa_repair;\n };\n };\n parent @oa_field_procedure;\n}\n\noa_occurrence oa_report_step \"Report the measured result\" id \"df2fd3f8-6bc2-5380-a13f-36643ed35ac7\" {\n body {\n Exchange {\n exchange @oa_repair_report;\n };\n };\n parent @oa_field_procedure;\n}\n\noa_occurrence oa_request_step \"Request the field repair\" id \"5ba8079c-2dbe-5e98-ae82-2b60c6020a02\" {\n body {\n Exchange {\n exchange @oa_repair_request;\n };\n };\n parent @oa_field_procedure;\n}\n\nsequence_link oa_repair_then_report \"Sequence link: Report the measured result\" id \"c8196d35-2168-5fef-8b03-ba0d139bc00f\" {\n source @oa_repair_step;\n target @oa_report_step;\n}\n\nsequence_link oa_request_then_repair \"Sequence link: Repair the valve\" id \"3f54d890-4ca5-5e36-873b-abb5c92d578c\" {\n source @oa_request_step;\n target @oa_repair_step;\n}\n\n","oa/behavior/process_oa_response.arcadia":"oa_process oa_response \"Handle a pressure alarm\" id \"58bae2b0-f560-50f2-818d-19091d22d18a\" {\n steps [@oa_assess_step, @oa_decision, @oa_reset_step, @oa_use_field, @oa_merge, @oa_confirm_step];\n}\n\noa_occurrence oa_assess_step \"Assess the alarm\" id \"0b07b9ed-492d-57f6-b0b1-ce8a709238a7\" {\n body {\n SequenceReference {\n sequence @oa_assessment_procedure;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_confirm_step \"Confirm safe pressure\" id \"e00594a3-6122-5a6b-b3c2-ecb5506c741d\" {\n body {\n Action {\n action @oa_confirm;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_decision \"Can a remote reset safely recover pressure?\" id \"b280c6ca-e5f9-5424-a5c1-5676e01c2371\" {\n body {\n Control {\n kind Choice;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_merge \"Recovery path completed\" id \"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d\" {\n body {\n Control {\n kind Merge;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_reset_step \"Try the authorized remote reset\" id \"d2026fc2-74a8-5e22-9942-ff3eb68a3677\" {\n body {\n Action {\n action @oa_reset;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_use_field \"Use the field repair procedure\" id \"fc6763bf-a534-54bf-afcd-57ab285ff07d\" {\n body {\n SequenceReference {\n sequence @oa_field_procedure;\n };\n };\n parent @oa_response;\n}\n\nsequence_link oa_assess_then_decide \"Continue\" id \"109e2d6b-7e86-5934-93a5-fab56eced84e\" {\n source @oa_assess_step;\n target @oa_decision;\n}\n\nsequence_link oa_field_path \"else\" id \"c1adbbd0-a762-5ee3-8b9a-5c18af377771\" {\n guard \"else\";\n source @oa_decision;\n target @oa_use_field;\n}\n\nsequence_link oa_remote_path \"remote reset is authorized\" id \"76218d89-68fd-531d-b35b-90c5b769a5ef\" {\n guard \"remote reset is authorized\";\n source @oa_decision;\n target @oa_reset_step;\n}\n\nsequence_link oa_confirm_path \"Continue\" id \"229ee94f-d147-50f6-9769-b5bd0c03a084\" {\n source @oa_merge;\n target @oa_confirm_step;\n}\n\nsequence_link oa_remote_merge \"Continue\" id \"bac43d3b-910b-5bdc-be9b-f78cf973e1ed\" {\n source @oa_reset_step;\n target @oa_merge;\n}\n\nchain_involvement oa_response_delivery \"Chain involvement: Restore a safe supply\" id \"c7c248f8-28b8-55be-9023-0991d44021e3\" {\n source @oa_response;\n target @oa_restore;\n}\n\nsequence_link oa_field_merge \"Continue\" id \"c8593670-8906-530f-b6a2-3ada77a9c219\" {\n source @oa_use_field;\n target @oa_merge;\n}\n\n","oa/behavior/scenario_oa_conversation.arcadia":"oa_scenario oa_conversation \"Repair request and measured reply\" id \"20472233-5ce6-5ffe-b4ad-0bdbccf3e423\" {\n context @oa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@oa_call, @oa_reply];\n viewpoint ParticipantInteraction;\n}\n\noa_occurrence oa_call \"Request valve repair\" id \"b97437c6-cd7a-5a05-b537-b30a17dd936a\" {\n body {\n Exchange {\n exchange @oa_contact;\n message_kind Call;\n receiver @oa_responder;\n sender @oa_caller;\n values [{\n expression \"420.0\";\n field @oa_pressure_parameter;\n }];\n };\n };\n parent @oa_conversation;\n}\n\noa_lifeline oa_caller \"Controller\" id \"41859a65-ded2-547b-ab03-14e2fa740cf9\" {\n parent @oa_conversation;\n represented @oa_control;\n}\n\noa_occurrence oa_reply \"Return pressure after repair\" id \"cc2d497a-fd15-5455-9ee5-e70eb95811d8\" {\n body {\n Exchange {\n exchange @oa_contact;\n message_kind Reply;\n receiver @oa_caller;\n reply_to @oa_call;\n sender @oa_responder;\n values [{\n expression \"320.0\";\n field @oa_pressure_parameter;\n }];\n };\n };\n parent @oa_conversation;\n}\n\noa_lifeline oa_responder \"Technician\" id \"fc81c5f0-0442-5b88-992b-e5b10f351c59\" {\n parent @oa_conversation;\n represented @oa_technician;\n}\n\n","oa/behavior/scenario_oa_full_scenario.arcadia":"oa_scenario oa_full_scenario \"Restore supply through field repair\" id \"d6f881a4-95da-54e9-ad97-1b8965532629\" {\n context @oa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@oa_use_conversation];\n viewpoint ParticipantInteraction;\n}\n\noa_lifeline oa_outer_controller \"Controller\" id \"2011b3ac-614b-5a47-8891-7ff81965f425\" {\n parent @oa_full_scenario;\n represented @oa_control;\n}\n\noa_lifeline oa_outer_technician \"Technician\" id \"fffff882-78fd-5415-928d-c1ef7fac6576\" {\n parent @oa_full_scenario;\n represented @oa_technician;\n}\n\noa_occurrence oa_use_conversation \"Use the reviewed repair conversation\" id \"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5\" {\n body {\n ScenarioUse {\n bindings [{\n local @oa_outer_controller;\n referenced @oa_caller;\n }, {\n local @oa_outer_technician;\n referenced @oa_responder;\n }];\n scenario @oa_conversation;\n };\n };\n parent @oa_full_scenario;\n}\n\n","oa/behavior/state_machine_oa_monitor.arcadia":"oa_state_machine oa_monitor \"Pressure supervision\" id \"1970608f-85d1-5234-ac86-5e2b0df27dc3\" {\n parent @oa_control;\n}\n\noa_region oa_monitor_region \"Supervision cycle\" id \"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7\" {\n parent @oa_monitor;\n}\n\noa_initial oa_monitor_initial \"Start\" id \"a7ffb869-9dde-5e76-b276-c719c5c143a9\" {\n parent @oa_monitor_region;\n}\n\noa_state oa_monitoring \"Monitoring\" id \"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae\" {\n parent @oa_monitor_region;\n}\n\noa_state oa_waiting \"Awaiting repair\" id \"58c15833-6e75-523a-b57f-a88f19f6d672\" {\n parent @oa_monitor_region;\n}\n\nstate_transition oa_start_monitoring \"State transition: Monitoring\" id \"2b00270c-79a5-52a5-af96-33346bea531b\" {\n source @oa_monitor_initial;\n target @oa_monitoring;\n}\n\nstate_transition oa_alarm_transition \"State transition: Awaiting repair\" id \"fbde9d5e-c7e9-55db-a2be-497345c491b3\" {\n source @oa_monitoring;\n target @oa_waiting;\n triggers [@oa_high_pressure];\n}\n\nstate_action oa_assess_on_entry \"Assess when repair is needed\" id \"7fa37e63-db65-5aa7-88f2-31ff4347a787\" {\n phase Entry;\n source @oa_waiting;\n target @oa_assess;\n}\n\nstate_transition oa_normal_transition \"State transition: Monitoring\" id \"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97\" {\n guard \"repair confirmed and pressure is safe\";\n source @oa_waiting;\n target @oa_monitoring;\n}\n\n","oa/capabilities.arcadia":"oa_mission oa_mission \"Maintain safe water supply\" id \"c9c61f50-06e0-5d17-973d-dcc57cd5cc90\" {\n}\n\noa_capability oa_restore \"Restore a safe supply\" id \"3dfee23a-148b-5cec-ad2d-b774e84ea5bb\" {\n}\n\noa_capability oa_triage \"Assess an alarm\" id \"6a30b763-cc51-546d-907f-5c63657cfd03\" {\n}\n\nmission_capability oa_mission_delivery \"Mission capability: Restore a safe supply\" id \"1f8b1898-65f6-5360-99cf-b78a71bd50ec\" {\n source @oa_mission;\n target @oa_restore;\n}\n\ncapability_include oa_include_triage \"Capability include: Assess an alarm\" id \"e21d9a54-ae8e-5618-a4f8-67ee22b92638\" {\n source @oa_restore;\n target @oa_triage;\n}\n\n","oa/model.arcadia":"oa_exchange_category oa_contact_category \"Field contact\" id \"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771\" {\n exchanges [@oa_contact];\n family \"Participant\";\n}\n\noa_event oa_high_pressure \"Pressure alarm detected\" id \"65d6b8d6-271a-5c84-8b42-abbe310c955e\" {\n body {\n Change {\n expression \"measured_pressure > operating_limit\";\n };\n };\n}\n\noa_exchange_category oa_repair_traffic \"Repair work exchanges\" id \"9349b353-53f2-56f8-b571-a05b09335cdf\" {\n exchanges [@oa_repair_request, @oa_repair_report];\n}\n\n","oa/participants.arcadia":"oa_entity oa_control \"Control room\" id \"32aa9940-df6e-5a12-b9bd-6337e2d2ed22\" {\n}\n\noa_actor oa_technician \"Field technician\" id \"e07c3952-4a1a-5cc7-b7d5-03a01101ce49\" {\n}\n\nallocation oa_assess_allocation \"Allocation: Assess pressure alarm\" id \"594c61cd-94e0-5c07-890d-edfd520d7df9\" {\n source @oa_control;\n target @oa_assess;\n}\n\nallocation oa_confirm_allocation \"Allocation: Confirm safe pressure\" id \"bfd4326e-ea65-5269-b5e6-e063a355d1e9\" {\n source @oa_control;\n target @oa_confirm;\n}\n\ncommunication_mean oa_contact \"Technician service conversation\" id \"27b47887-baf0-518b-bf87-f5acbf7d0b93\" {\n items [@oa_repair_operation];\n source @oa_control;\n target @oa_technician;\n}\n\nexchange_allocation oa_report_carriage \"Exchange allocation: Report repair result\" id \"4549d3fa-5ab9-52a9-b4f9-3a78fc9d625a\" {\n source @oa_contact;\n target @oa_repair_report;\n}\n\nexchange_allocation oa_request_carriage \"Exchange allocation: Request field repair\" id \"094b888c-450c-5c4f-971a-7d75db059574\" {\n source @oa_contact;\n target @oa_repair_request;\n}\n\nmission_involvement oa_mission_participant \"Mission involvement: Maintain safe water supply\" id \"0c4c9e58-ff32-5c00-b82a-d408a4be0183\" {\n source @oa_control;\n target @oa_mission;\n}\n\nallocation oa_reset_allocation \"Allocation: Reset valve remotely\" id \"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a\" {\n source @oa_control;\n target @oa_reset;\n}\n\nallocation oa_repair_allocation \"Allocation: Repair valve in the field\" id \"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2\" {\n source @oa_technician;\n target @oa_repair;\n}\n\n","oa/types.arcadia":"oa_data_type oa_pressure \"Measured pressure\" id \"e7824764-5db9-5384-8198-2fbaea2b10b2\" {\n definition {\n Real {\n maximum 600.0;\n minimum 0.0;\n };\n };\n unit \"kPa\";\n}\n\noa_exchange_item oa_repair_operation \"Valve repair\" id \"d736c7d6-d369-550a-8ba4-dae223e40bb3\" {\n mechanism Operation;\n}\n\noa_data_field oa_pressure_parameter \"Pressure before / after repair\" id \"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7\" {\n direction InOut;\n parent @oa_repair_operation;\n type_ref {\n Named @oa_pressure;\n };\n}\n\n","project.arcadia":"arcadia 7;\nproject pressure_restoration \"Restore safe water pressure — release 1 walkthrough\" id \"2786d72f-5763-5f33-a57f-2773a4ca1a6c\" {\n description \"A controller either resets a valve remotely or requests field repair. Compare the operational need with the explicitly chosen coordination-service boundary. Start with README.md beside project.arcadia. Units and guards are descriptive; this model does not simulate a real water network.\";\n include \"oa/activities/activity_oa_restore_work.arcadia\";\n include \"oa/behavior/process_oa_assessment_procedure.arcadia\";\n include \"oa/behavior/process_oa_field_procedure.arcadia\";\n include \"oa/behavior/process_oa_response.arcadia\";\n include \"oa/behavior/scenario_oa_conversation.arcadia\";\n include \"oa/behavior/scenario_oa_full_scenario.arcadia\";\n include \"oa/behavior/state_machine_oa_monitor.arcadia\";\n include \"oa/capabilities.arcadia\";\n include \"oa/model.arcadia\";\n include \"oa/participants.arcadia\";\n include \"oa/types.arcadia\";\n include \"sa/behavior/process_sa_assessment_procedure.arcadia\";\n include \"sa/behavior/process_sa_field_procedure.arcadia\";\n include \"sa/behavior/process_sa_response.arcadia\";\n include \"sa/behavior/scenario_sa_conversation.arcadia\";\n include \"sa/behavior/scenario_sa_full_scenario.arcadia\";\n include \"sa/behavior/state_machine_sa_monitor.arcadia\";\n include \"sa/capabilities.arcadia\";\n include \"sa/functions/function_sa_audit_thresholds.arcadia\";\n include \"sa/functions/function_sa_restore_work.arcadia\";\n include \"sa/model.arcadia\";\n include \"sa/participants.arcadia\";\n include \"sa/types.arcadia\";\n include \"traceability.arcadia\";\n include \"views/diagram_oa_allocation_view.arcadia\";\n include \"views/diagram_sa_allocation_view.arcadia\";\n include \"views/diagram_sa_capability_view.arcadia\";\n include \"views/diagram_sa_service_view.arcadia\";\n include \"views/diagram_sa_state_view.arcadia\";\n}\n","sa/behavior/process_sa_assessment_procedure.arcadia":"sa_functional_chain sa_assessment_procedure \"Assess an alarm procedure\" id \"acd5a018-f559-5298-a40d-1cf6e1353e74\" {\n steps [@sa_assessment_action];\n}\n\nsa_occurrence sa_assessment_action \"Assess pressure alarm\" id \"bae5b192-5b8e-51c6-82ae-2331af0d33bf\" {\n body {\n Action {\n action @sa_assess;\n };\n };\n parent @sa_assessment_procedure;\n}\n\nchain_involvement sa_assessment_delivery \"Chain involvement: Assess an alarm\" id \"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57\" {\n source @sa_assessment_procedure;\n target @sa_triage;\n}\n\n","sa/behavior/process_sa_field_procedure.arcadia":"sa_functional_chain sa_field_procedure \"Field repair procedure\" id \"93eb6479-54e9-59cb-ac7b-16912347bfc0\" {\n steps [@sa_request_step, @sa_repair_step, @sa_report_step];\n}\n\nsa_occurrence sa_repair_step \"Repair the valve\" id \"0f195fea-3493-5ebd-966d-da9eddeb05d7\" {\n body {\n Action {\n action @sa_repair;\n };\n };\n parent @sa_field_procedure;\n}\n\nsa_occurrence sa_report_step \"Report the measured result\" id \"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac\" {\n body {\n Exchange {\n exchange @sa_repair_report;\n };\n };\n parent @sa_field_procedure;\n}\n\nsa_occurrence sa_request_step \"Request the field repair\" id \"40d94322-baa2-5c81-b261-ff47cdc33782\" {\n body {\n Exchange {\n exchange @sa_repair_request;\n };\n };\n parent @sa_field_procedure;\n}\n\nsequence_link sa_repair_then_report \"Sequence link: Report the measured result\" id \"7fb30b1d-195c-5f0e-a19c-a536f519a899\" {\n source @sa_repair_step;\n target @sa_report_step;\n}\n\nsequence_link sa_request_then_repair \"Sequence link: Repair the valve\" id \"6a6d968f-26d6-5dbb-b721-5a27d362779a\" {\n source @sa_request_step;\n target @sa_repair_step;\n}\n\n","sa/behavior/process_sa_response.arcadia":"sa_functional_chain sa_response \"Handle a pressure alarm\" id \"5139ce73-56fd-5875-ba3a-e569fc890231\" {\n steps [@sa_assess_step, @sa_decision, @sa_reset_step, @sa_use_field, @sa_merge, @sa_confirm_step];\n}\n\nsa_occurrence sa_assess_step \"Assess the alarm\" id \"9024243c-ccc1-5edb-8477-2aa16e5e9a50\" {\n body {\n SequenceReference {\n sequence @sa_assessment_procedure;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_confirm_step \"Confirm safe pressure\" id \"47bec4f9-d6d0-5ed1-adca-fa0d960dc416\" {\n body {\n Action {\n action @sa_confirm;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_decision \"Can a remote reset safely recover pressure?\" id \"30c8fad9-a49b-5692-9542-3148e76afd7b\" {\n body {\n Control {\n kind Choice;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_merge \"Recovery path completed\" id \"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07\" {\n body {\n Control {\n kind Merge;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_reset_step \"Try the authorized remote reset\" id \"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6\" {\n body {\n Action {\n action @sa_reset;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_use_field \"Use the field repair procedure\" id \"d5e61c5d-510b-5091-a878-da46f3a9e152\" {\n body {\n SequenceReference {\n sequence @sa_field_procedure;\n };\n };\n parent @sa_response;\n}\n\nsequence_link sa_assess_then_decide \"Continue\" id \"9d4a131f-36ad-5125-b21f-c3dd033b8c82\" {\n source @sa_assess_step;\n target @sa_decision;\n}\n\nsequence_link sa_field_path \"else\" id \"1bbd5957-1173-51d8-97e3-ba4f084227ae\" {\n guard \"else\";\n source @sa_decision;\n target @sa_use_field;\n}\n\nsequence_link sa_remote_path \"remote reset is authorized\" id \"d8b6710a-e713-5979-934f-e5ca7d155bb4\" {\n guard \"remote reset is authorized\";\n source @sa_decision;\n target @sa_reset_step;\n}\n\nsequence_link sa_confirm_path \"Continue\" id \"1e738f27-a3a1-526d-b330-6384088b9689\" {\n source @sa_merge;\n target @sa_confirm_step;\n}\n\nsequence_link sa_remote_merge \"Continue\" id \"e5279265-8eac-52e8-98dc-571b20475e1f\" {\n source @sa_reset_step;\n target @sa_merge;\n}\n\nchain_involvement sa_response_delivery \"Chain involvement: Restore a safe supply\" id \"66efc484-53c7-51a3-89e9-422429344b38\" {\n source @sa_response;\n target @sa_restore;\n}\n\nsequence_link sa_field_merge \"Continue\" id \"0f6ac3fb-4ad6-581e-ad14-336472072d5e\" {\n source @sa_use_field;\n target @sa_merge;\n}\n\n","sa/behavior/scenario_sa_conversation.arcadia":"sa_scenario sa_conversation \"Repair request and measured reply\" id \"730b27ca-b039-5a3b-8dc6-03418f9061b3\" {\n context @sa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@sa_call, @sa_reply];\n viewpoint BoundaryInterface;\n}\n\nsa_occurrence sa_call \"Request valve repair\" id \"8bab4783-a098-5984-9e36-493957caf26c\" {\n body {\n Exchange {\n exchange @sa_contact;\n message_kind Call;\n receiver @sa_responder;\n sender @sa_caller;\n values [{\n expression \"420.0\";\n field @sa_pressure_parameter;\n }];\n };\n };\n parent @sa_conversation;\n}\n\nsa_lifeline sa_caller \"Controller\" id \"98c61788-2fee-51f4-8cf9-de48e8c70e9e\" {\n parent @sa_conversation;\n represented @sa_control;\n}\n\nsa_occurrence sa_reply \"Return pressure after repair\" id \"4e1c0a56-ce80-5f13-a93a-6956de54880c\" {\n body {\n Exchange {\n exchange @sa_contact;\n message_kind Reply;\n receiver @sa_caller;\n reply_to @sa_call;\n sender @sa_responder;\n values [{\n expression \"320.0\";\n field @sa_pressure_parameter;\n }];\n };\n };\n parent @sa_conversation;\n}\n\nsa_lifeline sa_responder \"Technician\" id \"6249b54a-e396-5338-82b9-89266c55670d\" {\n parent @sa_conversation;\n represented @sa_technician;\n}\n\nartifact repair_test_evidence \"Repair conversation acceptance notes\" id \"f5922bf7-05d8-590f-86e9-1d09f37f4fa6\" {\n description \"A local teaching artifact, not proof of a real valve's safety.\";\n fragment \"acceptance\";\n owner @sa_conversation;\n relation Verifies;\n revision \"lesson-1\";\n uri \"evidence/repair-check.md\";\n}\n\n","sa/behavior/scenario_sa_full_scenario.arcadia":"sa_scenario sa_full_scenario \"Restore supply through field repair\" id \"f746a1cd-ff9f-55c0-b325-01c03d2f4fae\" {\n context @sa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@sa_use_conversation];\n viewpoint BoundaryInterface;\n}\n\nsa_lifeline sa_outer_controller \"Controller\" id \"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023\" {\n parent @sa_full_scenario;\n represented @sa_control;\n}\n\nsa_lifeline sa_outer_technician \"Technician\" id \"155e4fe4-9e3b-5f4e-b886-28abcc3f086b\" {\n parent @sa_full_scenario;\n represented @sa_technician;\n}\n\nsa_occurrence sa_use_conversation \"Use the reviewed repair conversation\" id \"1c9da843-e2d3-5591-8e3f-db083a42867e\" {\n body {\n ScenarioUse {\n bindings [{\n local @sa_outer_controller;\n referenced @sa_caller;\n }, {\n local @sa_outer_technician;\n referenced @sa_responder;\n }];\n scenario @sa_conversation;\n };\n };\n parent @sa_full_scenario;\n}\n\n","sa/behavior/state_machine_sa_monitor.arcadia":"sa_state_machine sa_monitor \"Pressure supervision\" id \"132b3f28-3f88-5327-9868-8c8b645ed412\" {\n parent @sa_control;\n}\n\nsa_region sa_monitor_region \"Supervision cycle\" id \"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c\" {\n parent @sa_monitor;\n}\n\nsa_initial sa_monitor_initial \"Start\" id \"57eb5348-14d8-560e-996a-8dbf993243e2\" {\n parent @sa_monitor_region;\n}\n\nsa_state sa_monitoring \"Monitoring\" id \"8af21f9b-c21e-5aae-af0d-0958840f6655\" {\n parent @sa_monitor_region;\n}\n\nsa_state sa_waiting \"Awaiting repair\" id \"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37\" {\n parent @sa_monitor_region;\n}\n\nstate_transition sa_start_monitoring \"State transition: Monitoring\" id \"47730532-0372-5cc5-9d6d-0b8953aebdd8\" {\n source @sa_monitor_initial;\n target @sa_monitoring;\n}\n\nstate_transition sa_alarm_transition \"State transition: Awaiting repair\" id \"13c3bfa4-9254-5ab2-b96f-f65f402adf81\" {\n source @sa_monitoring;\n target @sa_waiting;\n triggers [@sa_high_pressure];\n}\n\nstate_action sa_assess_on_entry \"Assess when repair is needed\" id \"a887f96a-37cb-5891-8070-011fa276e5b5\" {\n phase Entry;\n source @sa_waiting;\n target @sa_assess;\n}\n\nstate_transition sa_normal_transition \"State transition: Monitoring\" id \"6e2c1b47-764c-577a-b325-ff66dd2a2768\" {\n guard \"repair confirmed and pressure is safe\";\n source @sa_waiting;\n target @sa_monitoring;\n}\n\n","sa/capabilities.arcadia":"sa_mission sa_mission \"Maintain safe water supply\" id \"5ad034b1-084d-5273-9e70-971671766132\" {\n}\n\nsa_capability sa_restore \"Restore a safe supply\" id \"81259051-370a-512d-a3b5-6420a6f933b6\" {\n}\n\nsa_capability sa_triage \"Assess an alarm\" id \"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f\" {\n}\n\nmission_capability sa_mission_delivery \"Mission capability: Restore a safe supply\" id \"a0902e0f-3d18-576a-9aca-975a136dfdd7\" {\n source @sa_mission;\n target @sa_restore;\n}\n\ncapability_include sa_include_triage \"Capability include: Assess an alarm\" id \"f3fe7690-734a-5877-8b57-a6599a4033c4\" {\n source @sa_restore;\n target @sa_triage;\n}\n\n","sa/functions/function_sa_audit_thresholds.arcadia":"sa_function sa_audit_thresholds \"Audit pressure thresholds\" id \"4149a872-3440-59de-9879-8981e78d27ab\" {\n description \"Deliberately unfinished: assigned to the service, but no behavior context yet. Model checks should expose this one work_without_behavior_context warning.\";\n}\n\n","sa/functions/function_sa_restore_work.arcadia":"sa_function sa_restore_work \"Restore safe pressure\" id \"58867e7d-916e-5ebc-9e4c-8dbed1314be3\" {\n}\n\nsa_function sa_assess \"Assess pressure alarm\" id \"dddae020-a444-5d48-acc8-139d2696a672\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_request_out \"Request field repair output\" id \"24a6850e-b819-57e0-af88-ca4ab76581b7\" {\n contract {\n FunctionOutput {\n outgoing_items [@sa_repair_operation];\n };\n };\n parent @sa_assess;\n}\n\nsa_function sa_confirm \"Confirm safe pressure\" id \"d75eb3fa-a27d-52d5-8782-8b342b3865f6\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_report_in \"Report repair result input\" id \"391af7c4-b07d-53a7-8ddd-5c81461fc4f8\" {\n contract {\n FunctionInput {\n incoming_items [@sa_repair_operation];\n };\n };\n parent @sa_confirm;\n}\n\nsa_function sa_repair \"Repair valve in the field\" id \"9497e10f-04c4-5586-8738-2464a6f00bd4\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_report_out \"Report repair result output\" id \"994faed7-dbc8-5b96-9d62-7604ac0fbc3a\" {\n contract {\n FunctionOutput {\n outgoing_items [@sa_repair_operation];\n };\n };\n parent @sa_repair;\n}\n\nsa_port sa_repair_request_in \"Request field repair input\" id \"d2113fb0-a531-54ef-9484-13951b00ab8f\" {\n contract {\n FunctionInput {\n incoming_items [@sa_repair_operation];\n };\n };\n parent @sa_repair;\n}\n\nsa_function sa_reset \"Reset valve remotely\" id \"09342ccb-044b-5483-ac58-87dc3cf7831c\" {\n parent @sa_restore_work;\n}\n\ncapability_involvement sa_assessment_support \"Capability involvement: Assess an alarm\" id \"93eaad8d-83b7-5980-b9bb-86c9e3f31da4\" {\n source @sa_assess;\n target @sa_triage;\n}\n\nfunctional_exchange sa_repair_request \"Request field repair\" id \"93474111-f23e-56c1-b61b-b7c2396b91bd\" {\n items [@sa_repair_operation];\n source @sa_assess;\n source_port @sa_repair_request_out;\n target @sa_repair;\n target_port @sa_repair_request_in;\n}\n\nfunctional_exchange sa_repair_report \"Report repair result\" id \"684eadc3-e670-5779-a60f-bbc9a5bfb062\" {\n items [@sa_repair_operation];\n source @sa_repair;\n source_port @sa_repair_report_out;\n target @sa_confirm;\n target_port @sa_repair_report_in;\n}\n\n","sa/model.arcadia":"sa_exchange_category sa_contact_category \"Field contact\" id \"781cbe75-410f-5cc5-aeb8-a43491f77b99\" {\n exchanges [@sa_contact];\n family \"Participant\";\n}\n\nsa_event sa_high_pressure \"Pressure alarm detected\" id \"01490fa8-2f01-5ac8-9722-d55d45414379\" {\n body {\n Change {\n expression \"measured_pressure > operating_limit\";\n };\n };\n}\n\nsa_exchange_category sa_repair_traffic \"Repair work exchanges\" id \"a9a47e48-100c-57a8-95f0-7fe24da94f94\" {\n exchanges [@sa_repair_request, @sa_repair_report];\n}\n\n","sa/participants.arcadia":"sa_system sa_control \"Pressure coordination service\" id \"435bf87c-73fd-5e4d-978a-4c471bc9eaf0\" {\n}\n\nsa_port sa_control_port \"Repair service client\" id \"98d411e7-7c65-5c3f-b543-8bf0f2522ea2\" {\n contract {\n Component {\n kind Standard;\n orientation Unset;\n };\n };\n description \"Explicitly chosen Standard component port for the repair service.\";\n parent @sa_control;\n}\n\nsa_actor sa_technician \"Field technician\" id \"c05b9422-b9da-5de5-b21d-07ad23bd2b8a\" {\n}\n\nsa_port sa_technician_port \"Repair service provider\" id \"e6d69cbd-99d7-596b-bbe3-dada6118a600\" {\n contract {\n Component {\n kind Standard;\n orientation Unset;\n };\n };\n description \"Explicitly chosen Standard component port for the repair service.\";\n parent @sa_technician;\n}\n\nallocation sa_assess_allocation \"Allocation: Assess pressure alarm\" id \"9b9356d7-2db2-5a94-a47e-ea892cf02afe\" {\n source @sa_control;\n target @sa_assess;\n}\n\nallocation sa_audit_allocation \"Allocation: Audit pressure thresholds\" id \"1b245065-7242-5d81-8472-aaeb932054c9\" {\n source @sa_control;\n target @sa_audit_thresholds;\n}\n\nallocation sa_confirm_allocation \"Allocation: Confirm safe pressure\" id \"b76bf8de-2fa4-563f-a540-dd30f30e6c49\" {\n source @sa_control;\n target @sa_confirm;\n}\n\ninterface_requirement sa_client_requires \"Interface requirement: Valve repair service\" id \"4f85337b-f6eb-533c-a45a-9a5d1d9567ca\" {\n source @sa_control_port;\n target @sa_repair_interface;\n}\n\nboundary_exchange sa_contact \"Technician service conversation\" id \"63009b5f-539e-5914-b630-ec6b7fefb4d5\" {\n items [@sa_repair_operation];\n oriented false;\n source @sa_control_port;\n target @sa_technician_port;\n}\n\nexchange_allocation sa_report_carriage \"Exchange allocation: Report repair result\" id \"ff9897b3-a23a-5994-a5b3-99a5b4d34ceb\" {\n source @sa_contact;\n target @sa_repair_report;\n}\n\nexchange_allocation sa_request_carriage \"Exchange allocation: Request field repair\" id \"4c4c4851-5a3d-5bb9-94df-b19f9cf39819\" {\n source @sa_contact;\n target @sa_repair_request;\n}\n\nport_allocation sa_port_report_in \"Port allocation: Report repair result input\" id \"568c5c01-de21-52a2-83bd-afdddc158085\" {\n source @sa_control_port;\n target @sa_repair_report_in;\n}\n\nport_allocation sa_port_request_out \"Port allocation: Request field repair output\" id \"55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9\" {\n source @sa_control_port;\n target @sa_repair_request_out;\n}\n\nmission_involvement sa_mission_participant \"Mission involvement: Maintain safe water supply\" id \"1c1e5634-ba8c-591f-b143-90a27cdc6cd2\" {\n source @sa_control;\n target @sa_mission;\n}\n\nallocation sa_reset_allocation \"Allocation: Reset valve remotely\" id \"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3\" {\n source @sa_control;\n target @sa_reset;\n}\n\nallocation sa_repair_allocation \"Allocation: Repair valve in the field\" id \"725f2e1b-aa2c-5615-9b1f-28da178168fa\" {\n source @sa_technician;\n target @sa_repair;\n}\n\nport_allocation sa_port_report_out \"Port allocation: Report repair result output\" id \"e53b7a40-e8a3-5b3f-826d-c2b5c164a84a\" {\n source @sa_technician_port;\n target @sa_repair_report_out;\n}\n\nport_allocation sa_port_request_in \"Port allocation: Request field repair input\" id \"09eaa992-4cdf-5ea3-b748-f10fd74b8cba\" {\n source @sa_technician_port;\n target @sa_repair_request_in;\n}\n\ninterface_provision sa_provider_provides \"Interface provision: Valve repair service\" id \"55f89fbf-aa3c-5ae1-95ef-ac676f9c1ada\" {\n source @sa_technician_port;\n target @sa_repair_interface;\n}\n\n","sa/types.arcadia":"sa_data_type sa_pressure \"Measured pressure\" id \"87d0a95b-af1b-5352-b753-e4c6533671a5\" {\n definition {\n Real {\n maximum 600.0;\n minimum 0.0;\n };\n };\n unit \"kPa\";\n}\n\nsa_interface sa_repair_interface \"Valve repair service\" id \"a4b8942e-a975-5f88-ad14-8f38c345baac\" {\n}\n\nsa_exchange_item sa_repair_operation \"Valve repair\" id \"a962fc5e-3ab0-5296-8b0d-fd84633f9218\" {\n mechanism Operation;\n}\n\nsa_data_field sa_pressure_parameter \"Pressure before / after repair\" id \"bb12ba5d-aab5-5a1b-99de-c767f5365b57\" {\n direction InOut;\n parent @sa_repair_operation;\n type_ref {\n Named @sa_pressure;\n };\n}\n\ninterface_item_allocation sa_repair_interface_item \"Repair operation contract\" id \"f074e041-23cf-54ad-af9c-f171e30621e7\" {\n acquisition Accept;\n source @sa_repair_interface;\n target @sa_repair_operation;\n transmission Synchronous;\n}\n\n","traceability.arcadia":"trace trace_oa_alarm_transition \"State transition: Awaiting repair ↔ State transition: Awaiting repair\" id \"0c7c8a06-163e-5b3e-8a98-e66e2ce8963b\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Awaiting repair\";\n };\n sa {\n description \"\";\n name \"State transition: Awaiting repair\";\n };\n };\n kind Manual;\n oa @oa_alarm_transition;\n sa @sa_alarm_transition;\n}\n\ntrace trace_oa_assess \"Assess pressure alarm ↔ Assess pressure alarm\" id \"5309f955-53fd-5ff4-9c0a-91737e947341\" {\n baseline {\n oa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n };\n oa @oa_assess;\n sa @sa_assess;\n}\n\ntrace trace_oa_assess_allocation \"Allocation: Assess pressure alarm ↔ Allocation: Assess pressure alarm\" id \"acdbee9c-5017-5154-804e-50801f0376ec\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Allocation: Assess pressure alarm\";\n };\n };\n kind Manual;\n oa @oa_assess_allocation;\n sa @sa_assess_allocation;\n}\n\ntrace trace_oa_assess_on_entry \"Assess when repair is needed ↔ Assess when repair is needed\" id \"fb02420d-b066-5773-87c1-198a056e0731\" {\n baseline {\n oa {\n description \"\";\n name \"Assess when repair is needed\";\n };\n sa {\n description \"\";\n name \"Assess when repair is needed\";\n };\n };\n kind Manual;\n oa @oa_assess_on_entry;\n sa @sa_assess_on_entry;\n}\n\ntrace trace_oa_assess_step \"Assess the alarm ↔ Assess the alarm\" id \"e848da41-445e-5e3c-8b4e-ef53fdddf1e1\" {\n baseline {\n oa {\n description \"\";\n name \"Assess the alarm\";\n };\n sa {\n description \"\";\n name \"Assess the alarm\";\n };\n };\n kind Sequence;\n oa @oa_assess_step;\n sa @sa_assess_step;\n}\n\ntrace trace_oa_assess_then_decide \"Continue ↔ Continue\" id \"a5c1eb01-a95f-5f7a-9742-7f201493d7aa\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_assess_then_decide;\n sa @sa_assess_then_decide;\n}\n\ntrace trace_oa_assessment_action \"Assess pressure alarm ↔ Assess pressure alarm\" id \"3a33de40-20a3-5252-899c-c12dc35e9783\" {\n baseline {\n oa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n };\n kind Sequence;\n oa @oa_assessment_action;\n sa @sa_assessment_action;\n}\n\ntrace trace_oa_assessment_delivery \"Chain involvement: Assess an alarm ↔ Chain involvement: Assess an alarm\" id \"5b96bfed-63e2-5d7f-b882-91e8b81f8efe\" {\n baseline {\n oa {\n description \"\";\n name \"Chain involvement: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Chain involvement: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_assessment_delivery;\n sa @sa_assessment_delivery;\n}\n\ntrace trace_oa_assessment_procedure \"Assess an alarm procedure ↔ Assess an alarm procedure\" id \"6ca4c78a-a5f2-5470-b401-732f5a8825d0\" {\n baseline {\n oa {\n description \"\";\n name \"Assess an alarm procedure\";\n };\n sa {\n description \"\";\n name \"Assess an alarm procedure\";\n };\n };\n kind Sequence;\n oa @oa_assessment_procedure;\n sa @sa_assessment_procedure;\n}\n\ntrace trace_oa_assessment_support \"Capability involvement: Assess an alarm ↔ Capability involvement: Assess an alarm\" id \"6e13cf86-7242-5e33-8912-b037cf6e8c87\" {\n baseline {\n oa {\n description \"\";\n name \"Capability involvement: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Capability involvement: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_assessment_support;\n sa @sa_assessment_support;\n}\n\ntrace trace_oa_call \"Request valve repair ↔ Request valve repair\" id \"f0cc86e5-f8fd-5091-a40d-dbfb6515072f\" {\n baseline {\n oa {\n description \"\";\n name \"Request valve repair\";\n };\n sa {\n description \"\";\n name \"Request valve repair\";\n };\n };\n kind Scenario;\n oa @oa_call;\n sa @sa_call;\n}\n\ntrace trace_oa_caller \"Controller ↔ Controller\" id \"241dfdac-2450-5704-a4cb-9f1047db1b6d\" {\n baseline {\n oa {\n description \"\";\n name \"Controller\";\n };\n sa {\n description \"\";\n name \"Controller\";\n };\n };\n kind Scenario;\n oa @oa_caller;\n sa @sa_caller;\n}\n\ntrace trace_oa_confirm \"Confirm safe pressure ↔ Confirm safe pressure\" id \"d7773ff5-cef5-50c1-8f9d-c5659115e1f0\" {\n baseline {\n oa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n };\n oa @oa_confirm;\n sa @sa_confirm;\n}\n\ntrace trace_oa_confirm_allocation \"Allocation: Confirm safe pressure ↔ Allocation: Confirm safe pressure\" id \"2fdcbc6f-526e-5a4e-bde5-314cf0cf3ef3\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Allocation: Confirm safe pressure\";\n };\n };\n kind Manual;\n oa @oa_confirm_allocation;\n sa @sa_confirm_allocation;\n}\n\ntrace trace_oa_confirm_path \"Continue ↔ Continue\" id \"a106d183-c239-5c9f-b1f1-141af19fc778\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_confirm_path;\n sa @sa_confirm_path;\n}\n\ntrace trace_oa_confirm_step \"Confirm safe pressure ↔ Confirm safe pressure\" id \"154abfce-c311-52d1-85d1-3f4c85203b26\" {\n baseline {\n oa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n };\n kind Sequence;\n oa @oa_confirm_step;\n sa @sa_confirm_step;\n}\n\ntrace trace_oa_contact \"Technician service conversation ↔ Technician service conversation\" id \"c9d65349-3400-58eb-8a55-57fa02de4b67\" {\n baseline {\n oa {\n description \"\";\n name \"Technician service conversation\";\n };\n sa {\n description \"\";\n name \"Technician service conversation\";\n };\n };\n kind Exchange;\n oa @oa_contact;\n sa @sa_contact;\n}\n\ntrace trace_oa_contact_category \"Field contact ↔ Field contact\" id \"e96ff119-bb4d-5fd9-9ab7-2ede0d3fd418\" {\n baseline {\n oa {\n description \"\";\n name \"Field contact\";\n };\n sa {\n description \"\";\n name \"Field contact\";\n };\n };\n kind Manual;\n oa @oa_contact_category;\n sa @sa_contact_category;\n}\n\ntrace trace_oa_control \"Control room ↔ Pressure coordination service\" id \"aba528ea-e396-582a-bfba-f6e2212d391a\" {\n baseline {\n oa {\n description \"\";\n name \"Control room\";\n };\n sa {\n description \"\";\n name \"Pressure coordination service\";\n };\n };\n kind Participant;\n oa @oa_control;\n sa @sa_control;\n}\n\ntrace trace_oa_conversation \"Repair request and measured reply ↔ Repair request and measured reply\" id \"3694c752-ba80-5702-a7d7-9cc66b6b01d8\" {\n baseline {\n oa {\n description \"\";\n name \"Repair request and measured reply\";\n };\n sa {\n description \"\";\n name \"Repair request and measured reply\";\n };\n };\n kind Scenario;\n oa @oa_conversation;\n sa @sa_conversation;\n}\n\ntrace trace_oa_decision \"Can a remote reset safely recover pressure? ↔ Can a remote reset safely recover pressure?\" id \"bbf6f1a1-cb2b-5632-8ec0-bf4b8ef1a941\" {\n baseline {\n oa {\n description \"\";\n name \"Can a remote reset safely recover pressure?\";\n };\n sa {\n description \"\";\n name \"Can a remote reset safely recover pressure?\";\n };\n };\n kind Sequence;\n oa @oa_decision;\n sa @sa_decision;\n}\n\ntrace trace_oa_field_merge \"Continue ↔ Continue\" id \"d32dd433-9c9e-5b57-9355-2970cc44a5f2\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_field_merge;\n sa @sa_field_merge;\n}\n\ntrace trace_oa_field_path \"else ↔ else\" id \"2e849e31-35aa-5aef-a989-26948038e52b\" {\n baseline {\n oa {\n description \"\";\n name \"else\";\n };\n sa {\n description \"\";\n name \"else\";\n };\n };\n kind Manual;\n oa @oa_field_path;\n sa @sa_field_path;\n}\n\ntrace trace_oa_field_procedure \"Field repair procedure ↔ Field repair procedure\" id \"bb72b2c2-6e32-5f65-9d8e-b33c1a65da37\" {\n baseline {\n oa {\n description \"\";\n name \"Field repair procedure\";\n };\n sa {\n description \"\";\n name \"Field repair procedure\";\n };\n };\n kind Sequence;\n oa @oa_field_procedure;\n sa @sa_field_procedure;\n}\n\ntrace trace_oa_full_scenario \"Restore supply through field repair ↔ Restore supply through field repair\" id \"435bae4c-cf6d-59f3-9eb5-d660ebeec079\" {\n baseline {\n oa {\n description \"\";\n name \"Restore supply through field repair\";\n };\n sa {\n description \"\";\n name \"Restore supply through field repair\";\n };\n };\n kind Scenario;\n oa @oa_full_scenario;\n sa @sa_full_scenario;\n}\n\ntrace trace_oa_high_pressure \"Pressure alarm detected ↔ Pressure alarm detected\" id \"b97749d4-f9ad-5fb7-9d78-bc60a74e98eb\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure alarm detected\";\n };\n sa {\n description \"\";\n name \"Pressure alarm detected\";\n };\n };\n kind State;\n oa @oa_high_pressure;\n sa @sa_high_pressure;\n}\n\ntrace trace_oa_include_triage \"Capability include: Assess an alarm ↔ Capability include: Assess an alarm\" id \"77073fcb-53aa-5f06-987a-0317cbb6971d\" {\n baseline {\n oa {\n description \"\";\n name \"Capability include: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Capability include: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_include_triage;\n sa @sa_include_triage;\n}\n\ntrace trace_oa_merge \"Recovery path completed ↔ Recovery path completed\" id \"0c9de959-d366-5765-98eb-450ea27bd316\" {\n baseline {\n oa {\n description \"\";\n name \"Recovery path completed\";\n };\n sa {\n description \"\";\n name \"Recovery path completed\";\n };\n };\n kind Sequence;\n oa @oa_merge;\n sa @sa_merge;\n}\n\ntrace trace_oa_mission \"Maintain safe water supply ↔ Maintain safe water supply\" id \"c987bd0f-87f6-5550-945d-2a42450fe1c5\" {\n baseline {\n oa {\n description \"\";\n name \"Maintain safe water supply\";\n };\n sa {\n description \"\";\n name \"Maintain safe water supply\";\n };\n };\n kind Mission;\n oa @oa_mission;\n sa @sa_mission;\n}\n\ntrace trace_oa_mission_delivery \"Mission capability: Restore a safe supply ↔ Mission capability: Restore a safe supply\" id \"aa164208-394d-5bc7-8462-b0043f682aad\" {\n baseline {\n oa {\n description \"\";\n name \"Mission capability: Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Mission capability: Restore a safe supply\";\n };\n };\n kind Manual;\n oa @oa_mission_delivery;\n sa @sa_mission_delivery;\n}\n\ntrace trace_oa_mission_participant \"Mission involvement: Maintain safe water supply ↔ Mission involvement: Maintain safe water supply\" id \"8d693d90-5017-56af-b056-d29d3cb46baa\" {\n baseline {\n oa {\n description \"\";\n name \"Mission involvement: Maintain safe water supply\";\n };\n sa {\n description \"\";\n name \"Mission involvement: Maintain safe water supply\";\n };\n };\n kind Manual;\n oa @oa_mission_participant;\n sa @sa_mission_participant;\n}\n\ntrace trace_oa_monitor \"Pressure supervision ↔ Pressure supervision\" id \"b53863a2-ed80-5f98-ad3c-50e1b821066d\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure supervision\";\n };\n sa {\n description \"\";\n name \"Pressure supervision\";\n };\n };\n kind State;\n oa @oa_monitor;\n sa @sa_monitor;\n}\n\ntrace trace_oa_monitor_initial \"Start ↔ Start\" id \"48d243f0-553f-507e-acb0-9474ae156b63\" {\n baseline {\n oa {\n description \"\";\n name \"Start\";\n };\n sa {\n description \"\";\n name \"Start\";\n };\n };\n kind State;\n oa @oa_monitor_initial;\n sa @sa_monitor_initial;\n}\n\ntrace trace_oa_monitor_region \"Supervision cycle ↔ Supervision cycle\" id \"208753e0-9151-50d8-86ca-29fc28eca80b\" {\n baseline {\n oa {\n description \"\";\n name \"Supervision cycle\";\n };\n sa {\n description \"\";\n name \"Supervision cycle\";\n };\n };\n kind State;\n oa @oa_monitor_region;\n sa @sa_monitor_region;\n}\n\ntrace trace_oa_monitoring \"Monitoring ↔ Monitoring\" id \"12ec320f-2e14-5a5a-8c6b-bd2b6471dae9\" {\n baseline {\n oa {\n description \"\";\n name \"Monitoring\";\n };\n sa {\n description \"\";\n name \"Monitoring\";\n };\n };\n kind State;\n oa @oa_monitoring;\n sa @sa_monitoring;\n}\n\ntrace trace_oa_normal_transition \"State transition: Monitoring ↔ State transition: Monitoring\" id \"c47cf0b4-fe15-5175-bd62-5292e43adc39\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n sa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n };\n kind Manual;\n oa @oa_normal_transition;\n sa @sa_normal_transition;\n}\n\ntrace trace_oa_outer_controller \"Controller ↔ Controller\" id \"fd195498-dbba-523b-94d0-49f3b9531a3e\" {\n baseline {\n oa {\n description \"\";\n name \"Controller\";\n };\n sa {\n description \"\";\n name \"Controller\";\n };\n };\n kind Scenario;\n oa @oa_outer_controller;\n sa @sa_outer_controller;\n}\n\ntrace trace_oa_outer_technician \"Technician ↔ Technician\" id \"c132a0df-1270-55a8-ac4e-6e5075823dc1\" {\n baseline {\n oa {\n description \"\";\n name \"Technician\";\n };\n sa {\n description \"\";\n name \"Technician\";\n };\n };\n kind Scenario;\n oa @oa_outer_technician;\n sa @sa_outer_technician;\n}\n\ntrace trace_oa_pressure \"Measured pressure ↔ Measured pressure\" id \"d9d47371-e98d-5d29-9df7-4de2d28a5c73\" {\n baseline {\n oa {\n description \"\";\n name \"Measured pressure\";\n };\n sa {\n description \"\";\n name \"Measured pressure\";\n };\n };\n kind Item;\n oa @oa_pressure;\n sa @sa_pressure;\n}\n\ntrace trace_oa_pressure_parameter \"Pressure before / after repair ↔ Pressure before / after repair\" id \"0d905fbb-5b3c-56f0-9f11-a27091901eb0\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure before / after repair\";\n };\n sa {\n description \"\";\n name \"Pressure before / after repair\";\n };\n };\n kind Item;\n oa @oa_pressure_parameter;\n sa @sa_pressure_parameter;\n}\n\ntrace trace_oa_remote_merge \"Continue ↔ Continue\" id \"1b788e74-36b2-5c17-a936-642dbe51ca3c\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_remote_merge;\n sa @sa_remote_merge;\n}\n\ntrace trace_oa_remote_path \"remote reset is authorized ↔ remote reset is authorized\" id \"eee79ec1-41d7-5374-986e-995a56b9026f\" {\n baseline {\n oa {\n description \"\";\n name \"remote reset is authorized\";\n };\n sa {\n description \"\";\n name \"remote reset is authorized\";\n };\n };\n kind Manual;\n oa @oa_remote_path;\n sa @sa_remote_path;\n}\n\ntrace trace_oa_repair \"Repair valve in the field ↔ Repair valve in the field\" id \"b13452bb-1a55-5ad6-b6d9-a37fb34e8d13\" {\n baseline {\n oa {\n description \"\";\n name \"Repair valve in the field\";\n };\n sa {\n description \"\";\n name \"Repair valve in the field\";\n };\n };\n oa @oa_repair;\n sa @sa_repair;\n}\n\ntrace trace_oa_repair_allocation \"Allocation: Repair valve in the field ↔ Allocation: Repair valve in the field\" id \"3714d547-006f-5c3a-97f8-175ccc23d994\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Repair valve in the field\";\n };\n sa {\n description \"\";\n name \"Allocation: Repair valve in the field\";\n };\n };\n kind Manual;\n oa @oa_repair_allocation;\n sa @sa_repair_allocation;\n}\n\ntrace trace_oa_repair_operation \"Valve repair ↔ Valve repair\" id \"cf92cedf-ea1a-510c-9bc5-89c16d60e8d2\" {\n baseline {\n oa {\n description \"\";\n name \"Valve repair\";\n };\n sa {\n description \"\";\n name \"Valve repair\";\n };\n };\n kind Item;\n oa @oa_repair_operation;\n sa @sa_repair_operation;\n}\n\ntrace trace_oa_repair_report \"Report repair result ↔ Report repair result\" id \"424eca39-1c29-5a2f-b9ee-33dd018926aa\" {\n baseline {\n oa {\n description \"\";\n name \"Report repair result\";\n };\n sa {\n description \"\";\n name \"Report repair result\";\n };\n };\n kind Exchange;\n oa @oa_repair_report;\n sa @sa_repair_report;\n}\n\ntrace trace_oa_repair_request \"Request field repair ↔ Request field repair\" id \"da8efc3c-78df-5b10-b2e5-1e28d6d99e86\" {\n baseline {\n oa {\n description \"\";\n name \"Request field repair\";\n };\n sa {\n description \"\";\n name \"Request field repair\";\n };\n };\n kind Exchange;\n oa @oa_repair_request;\n sa @sa_repair_request;\n}\n\ntrace trace_oa_repair_step \"Repair the valve ↔ Repair the valve\" id \"ac3aa6b0-568e-5a3f-963a-172aa3cfc7a4\" {\n baseline {\n oa {\n description \"\";\n name \"Repair the valve\";\n };\n sa {\n description \"\";\n name \"Repair the valve\";\n };\n };\n kind Sequence;\n oa @oa_repair_step;\n sa @sa_repair_step;\n}\n\ntrace trace_oa_repair_then_report \"Sequence link: Report the measured result ↔ Sequence link: Report the measured result\" id \"f8d34715-1dc8-504b-acdf-78b770aad1e8\" {\n baseline {\n oa {\n description \"\";\n name \"Sequence link: Report the measured result\";\n };\n sa {\n description \"\";\n name \"Sequence link: Report the measured result\";\n };\n };\n kind Manual;\n oa @oa_repair_then_report;\n sa @sa_repair_then_report;\n}\n\ntrace trace_oa_repair_traffic \"Repair work exchanges ↔ Repair work exchanges\" id \"3e7bde54-f9c1-549f-9e5b-2ce1ecb685a7\" {\n baseline {\n oa {\n description \"\";\n name \"Repair work exchanges\";\n };\n sa {\n description \"\";\n name \"Repair work exchanges\";\n };\n };\n kind Manual;\n oa @oa_repair_traffic;\n sa @sa_repair_traffic;\n}\n\ntrace trace_oa_reply \"Return pressure after repair ↔ Return pressure after repair\" id \"595b5729-ccd9-5291-b5d9-30d8c8bd9dfa\" {\n baseline {\n oa {\n description \"\";\n name \"Return pressure after repair\";\n };\n sa {\n description \"\";\n name \"Return pressure after repair\";\n };\n };\n kind Scenario;\n oa @oa_reply;\n sa @sa_reply;\n}\n\ntrace trace_oa_report_step \"Report the measured result ↔ Report the measured result\" id \"e63b14d2-f408-56a2-aec4-be20cf4ace73\" {\n baseline {\n oa {\n description \"\";\n name \"Report the measured result\";\n };\n sa {\n description \"\";\n name \"Report the measured result\";\n };\n };\n kind Sequence;\n oa @oa_report_step;\n sa @sa_report_step;\n}\n\ntrace trace_oa_request_step \"Request the field repair ↔ Request the field repair\" id \"ad697c00-07d9-5799-89b3-2c78da8dff4d\" {\n baseline {\n oa {\n description \"\";\n name \"Request the field repair\";\n };\n sa {\n description \"\";\n name \"Request the field repair\";\n };\n };\n kind Sequence;\n oa @oa_request_step;\n sa @sa_request_step;\n}\n\ntrace trace_oa_request_then_repair \"Sequence link: Repair the valve ↔ Sequence link: Repair the valve\" id \"f2b7050c-629d-533f-b873-bffc33e072f7\" {\n baseline {\n oa {\n description \"\";\n name \"Sequence link: Repair the valve\";\n };\n sa {\n description \"\";\n name \"Sequence link: Repair the valve\";\n };\n };\n kind Manual;\n oa @oa_request_then_repair;\n sa @sa_request_then_repair;\n}\n\ntrace trace_oa_reset \"Reset valve remotely ↔ Reset valve remotely\" id \"82a5be1a-92a8-578d-9448-086062a20d8f\" {\n baseline {\n oa {\n description \"\";\n name \"Reset valve remotely\";\n };\n sa {\n description \"\";\n name \"Reset valve remotely\";\n };\n };\n oa @oa_reset;\n sa @sa_reset;\n}\n\ntrace trace_oa_reset_allocation \"Allocation: Reset valve remotely ↔ Allocation: Reset valve remotely\" id \"98ef05b5-5381-5d35-a433-ebab55e9f382\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Reset valve remotely\";\n };\n sa {\n description \"\";\n name \"Allocation: Reset valve remotely\";\n };\n };\n kind Manual;\n oa @oa_reset_allocation;\n sa @sa_reset_allocation;\n}\n\ntrace trace_oa_reset_step \"Try the authorized remote reset ↔ Try the authorized remote reset\" id \"ff84fc06-6f99-5cf3-b73d-236e9eff98a3\" {\n baseline {\n oa {\n description \"\";\n name \"Try the authorized remote reset\";\n };\n sa {\n description \"\";\n name \"Try the authorized remote reset\";\n };\n };\n kind Sequence;\n oa @oa_reset_step;\n sa @sa_reset_step;\n}\n\ntrace trace_oa_responder \"Technician ↔ Technician\" id \"c5051628-b7af-5fb1-a014-bb60a0b46e03\" {\n baseline {\n oa {\n description \"\";\n name \"Technician\";\n };\n sa {\n description \"\";\n name \"Technician\";\n };\n };\n kind Scenario;\n oa @oa_responder;\n sa @sa_responder;\n}\n\ntrace trace_oa_response \"Handle a pressure alarm ↔ Handle a pressure alarm\" id \"d3626818-4846-5893-9c02-3407cdba7f3c\" {\n baseline {\n oa {\n description \"\";\n name \"Handle a pressure alarm\";\n };\n sa {\n description \"\";\n name \"Handle a pressure alarm\";\n };\n };\n kind Sequence;\n oa @oa_response;\n sa @sa_response;\n}\n\ntrace trace_oa_response_delivery \"Chain involvement: Restore a safe supply ↔ Chain involvement: Restore a safe supply\" id \"70c90b0c-85ce-574a-a217-f0d19fad30e1\" {\n baseline {\n oa {\n description \"\";\n name \"Chain involvement: Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Chain involvement: Restore a safe supply\";\n };\n };\n kind Manual;\n oa @oa_response_delivery;\n sa @sa_response_delivery;\n}\n\ntrace trace_oa_restore \"Restore a safe supply ↔ Restore a safe supply\" id \"0fbef164-b5d3-58ba-ba41-54d0e63709ab\" {\n baseline {\n oa {\n description \"\";\n name \"Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Restore a safe supply\";\n };\n };\n kind Capability;\n oa @oa_restore;\n sa @sa_restore;\n}\n\ntrace trace_oa_restore_work \"Restore safe pressure ↔ Restore safe pressure\" id \"82cca563-9d5d-5479-aa1a-9db03e9674d1\" {\n baseline {\n oa {\n description \"\";\n name \"Restore safe pressure\";\n };\n sa {\n description \"\";\n name \"Restore safe pressure\";\n };\n };\n oa @oa_restore_work;\n sa @sa_restore_work;\n}\n\ntrace trace_oa_start_monitoring \"State transition: Monitoring ↔ State transition: Monitoring\" id \"07a7b82a-b5a7-5737-abfa-09e422f7420e\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n sa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n };\n kind Manual;\n oa @oa_start_monitoring;\n sa @sa_start_monitoring;\n}\n\ntrace trace_oa_technician \"Field technician ↔ Field technician\" id \"d47d3c36-50fb-5189-b801-d6fd1694bd49\" {\n baseline {\n oa {\n description \"\";\n name \"Field technician\";\n };\n sa {\n description \"\";\n name \"Field technician\";\n };\n };\n kind Participant;\n oa @oa_technician;\n sa @sa_technician;\n}\n\ntrace trace_oa_triage \"Assess an alarm ↔ Assess an alarm\" id \"6acd072d-431e-5881-ab20-1813b4fda0c5\" {\n baseline {\n oa {\n description \"\";\n name \"Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Assess an alarm\";\n };\n };\n kind Capability;\n oa @oa_triage;\n sa @sa_triage;\n}\n\ntrace trace_oa_use_conversation \"Use the reviewed repair conversation ↔ Use the reviewed repair conversation\" id \"f5733d3f-eee3-5cf7-a422-5edd2054d6a6\" {\n baseline {\n oa {\n description \"\";\n name \"Use the reviewed repair conversation\";\n };\n sa {\n description \"\";\n name \"Use the reviewed repair conversation\";\n };\n };\n kind Scenario;\n oa @oa_use_conversation;\n sa @sa_use_conversation;\n}\n\ntrace trace_oa_use_field \"Use the field repair procedure ↔ Use the field repair procedure\" id \"7a6b4b9c-4220-546a-a752-1587c2881fe1\" {\n baseline {\n oa {\n description \"\";\n name \"Use the field repair procedure\";\n };\n sa {\n description \"\";\n name \"Use the field repair procedure\";\n };\n };\n kind Sequence;\n oa @oa_use_field;\n sa @sa_use_field;\n}\n\ntrace trace_oa_waiting \"Awaiting repair ↔ Awaiting repair\" id \"0754be23-e4b8-53bc-b03c-89c2dbd80361\" {\n baseline {\n oa {\n description \"\";\n name \"Awaiting repair\";\n };\n sa {\n description \"\";\n name \"Awaiting repair\";\n };\n };\n kind State;\n oa @oa_waiting;\n sa @sa_waiting;\n}\n\n","views/diagram_oa_allocation_view.arcadia":"diagram oa_allocation_view \"1 · OA responsibility and repair traffic\" id \"103ea62c-ac56-5827-94e7-cf09bca96ccc\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n projection Allocation;\n}\n\nnode oa_allocation_view_oa_assess id \"5ae1c46d-59a3-50fd-8cc3-b292df21f951\" {\n diagram @oa_allocation_view;\n element @oa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_confirm id \"edd74060-ac61-5450-a57c-a6577daa5d50\" {\n diagram @oa_allocation_view;\n element @oa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_control id \"3191e05c-1c7f-5f0e-beb0-5f3bded54c48\" {\n diagram @oa_allocation_view;\n element @oa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_repair id \"202ebe37-ddb4-5099-8ce9-ec3e895ab9e9\" {\n diagram @oa_allocation_view;\n element @oa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_reset id \"7066f78c-9736-5349-b94a-0587331b980e\" {\n diagram @oa_allocation_view;\n element @oa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_technician id \"d27f28ef-f10a-5355-9a05-6f2fd39b7de6\" {\n diagram @oa_allocation_view;\n element @oa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n","views/diagram_sa_allocation_view.arcadia":"diagram sa_allocation_view \"2 · SA service boundary and functions\" id \"35d3c24b-289e-59e5-a610-8333e2c6a4bb\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Allocation;\n}\n\nnode sa_allocation_view_sa_assess id \"60f6ad74-b69e-5aef-b832-f1bd60b903ae\" {\n diagram @sa_allocation_view;\n element @sa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_confirm id \"7e3ba36f-bc68-5520-bdb9-77083bb7bba2\" {\n diagram @sa_allocation_view;\n element @sa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_control id \"8345c76a-8d85-5c31-902e-ec1cd33ed4a3\" {\n diagram @sa_allocation_view;\n element @sa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_repair id \"34630a18-41b0-5fdd-bff4-ee86e93e8651\" {\n diagram @sa_allocation_view;\n element @sa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_reset id \"73406244-ebd7-5995-86c7-e17c73c50b32\" {\n diagram @sa_allocation_view;\n element @sa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_technician id \"f7225d1c-e506-505d-bb20-916950269d4b\" {\n diagram @sa_allocation_view;\n element @sa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n","views/diagram_sa_capability_view.arcadia":"diagram sa_capability_view \"4 · SA mission and included capability\" id \"3e6ad194-61b5-584c-b0f0-a78a20af5781\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Capabilities;\n}\n\nnode sa_capability_view_sa_control id \"41ddb68b-bd2b-5f91-82eb-efde01157828\" {\n diagram @sa_capability_view;\n element @sa_control;\n position {\n x 60.0;\n y 60.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_mission id \"4b814335-bf98-5b68-85d5-ea549766517a\" {\n diagram @sa_capability_view;\n element @sa_mission;\n position {\n x 420.0;\n y 60.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_restore id \"d3bc13f9-7726-5280-83fe-63f391c45afb\" {\n diagram @sa_capability_view;\n element @sa_restore;\n position {\n x 420.0;\n y 260.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_triage id \"069a3fb3-077c-59d8-91da-27b0665143c7\" {\n diagram @sa_capability_view;\n element @sa_triage;\n position {\n x 800.0;\n y 260.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n","views/diagram_sa_service_view.arcadia":"diagram sa_service_view \"3 · SA service conversation only\" id \"50af4c9b-93ce-5ff5-a1f8-7a81eb97e779\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Allocation;\n view_options {\n exchange_labels \"NameAndItems\";\n participant_categories {\n Any [@sa_contact_category];\n };\n work_categories {\n Any [];\n };\n };\n}\n\nnode sa_service_view_sa_assess id \"439f1e45-e5ed-567c-978b-4c93ef267db1\" {\n diagram @sa_service_view;\n element @sa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_confirm id \"6f138672-149b-5f88-ab07-7fc413a42262\" {\n diagram @sa_service_view;\n element @sa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_control id \"f53d4352-b042-56a6-8b3e-c51cd27254f9\" {\n diagram @sa_service_view;\n element @sa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_repair id \"ae36489d-6ec8-5f1c-b603-8b497227efba\" {\n diagram @sa_service_view;\n element @sa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_reset id \"d52da4e6-40b7-5dbc-84fb-80c443711c69\" {\n diagram @sa_service_view;\n element @sa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_technician id \"40210589-69f7-5209-b329-10bb83cf615c\" {\n diagram @sa_service_view;\n element @sa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n","views/diagram_sa_state_view.arcadia":"diagram sa_state_view \"5 · SA pressure supervision\" id \"30d5baf9-6581-5cb6-846a-bcaa1e6cce63\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection {\n StateMachine {\n machine @sa_monitor;\n };\n };\n}\n\nnode sa_state_view_sa_monitor id \"a676fbb9-0833-59a8-98cf-a10d8f4b7434\" {\n diagram @sa_state_view;\n element @sa_monitor;\n position {\n x 30.0;\n y 30.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitor_initial id \"5e2326a0-0f6c-5f8d-8a21-fdded18a9281\" {\n diagram @sa_state_view;\n element @sa_monitor_initial;\n position {\n x 100.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitor_region id \"55a74f91-2025-5001-8db8-9566b1dbe783\" {\n diagram @sa_state_view;\n element @sa_monitor_region;\n position {\n x 70.0;\n y 95.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitoring id \"b3af7b04-5a45-5b82-ab69-7eada4b876f0\" {\n diagram @sa_state_view;\n element @sa_monitoring;\n position {\n x 220.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_waiting id \"57acbb71-ca86-57fc-ae90-42dad195f0e0\" {\n diagram @sa_state_view;\n element @sa_waiting;\n position {\n x 650.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/04.request.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/04.request.json new file mode 100644 index 00000000..a6fa60b3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/04.request.json @@ -0,0 +1 @@ +{"entry": "qa-saved.arcadia", "files": {"qa-saved.arcadia": "arcadia 7;\nproject pressure_restoration \"Restore safe water pressure — release 1 walkthrough\" id \"2786d72f-5763-5f33-a57f-2773a4ca1a6c\" {\n description \"A controller either resets a valve remotely or requests field repair. Compare the operational need with the explicitly chosen coordination-service boundary. Start with README.md beside project.arcadia. Units and guards are descriptive; this model does not simulate a real water network.\";\n include \"oa/activities/activity_oa_restore_work.arcadia\";\n include \"oa/behavior/process_oa_assessment_procedure.arcadia\";\n include \"oa/behavior/process_oa_field_procedure.arcadia\";\n include \"oa/behavior/process_oa_response.arcadia\";\n include \"oa/behavior/scenario_oa_conversation.arcadia\";\n include \"oa/behavior/scenario_oa_full_scenario.arcadia\";\n include \"oa/behavior/state_machine_oa_monitor.arcadia\";\n include \"oa/capabilities.arcadia\";\n include \"oa/model.arcadia\";\n include \"oa/participants.arcadia\";\n include \"oa/types.arcadia\";\n include \"sa/behavior/process_sa_assessment_procedure.arcadia\";\n include \"sa/behavior/process_sa_field_procedure.arcadia\";\n include \"sa/behavior/process_sa_response.arcadia\";\n include \"sa/behavior/scenario_sa_conversation.arcadia\";\n include \"sa/behavior/scenario_sa_full_scenario.arcadia\";\n include \"sa/behavior/state_machine_sa_monitor.arcadia\";\n include \"sa/capabilities.arcadia\";\n include \"sa/functions/function_sa_audit_thresholds.arcadia\";\n include \"sa/functions/function_sa_restore_work.arcadia\";\n include \"sa/model.arcadia\";\n include \"sa/participants.arcadia\";\n include \"sa/types.arcadia\";\n include \"traceability.arcadia\";\n include \"views/diagram_oa_allocation_view.arcadia\";\n include \"views/diagram_sa_allocation_view.arcadia\";\n include \"views/diagram_sa_capability_view.arcadia\";\n include \"views/diagram_sa_service_view.arcadia\";\n include \"views/diagram_sa_state_view.arcadia\";\n}\n", "traceability.arcadia": "trace trace_oa_alarm_transition \"State transition: Awaiting repair ↔ State transition: Awaiting repair\" id \"0c7c8a06-163e-5b3e-8a98-e66e2ce8963b\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Awaiting repair\";\n };\n sa {\n description \"\";\n name \"State transition: Awaiting repair\";\n };\n };\n kind Manual;\n oa @oa_alarm_transition;\n sa @sa_alarm_transition;\n}\n\ntrace trace_oa_assess \"Assess pressure alarm ↔ Assess pressure alarm\" id \"5309f955-53fd-5ff4-9c0a-91737e947341\" {\n baseline {\n oa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n };\n oa @oa_assess;\n sa @sa_assess;\n}\n\ntrace trace_oa_assess_allocation \"Allocation: Assess pressure alarm ↔ Allocation: Assess pressure alarm\" id \"acdbee9c-5017-5154-804e-50801f0376ec\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Allocation: Assess pressure alarm\";\n };\n };\n kind Manual;\n oa @oa_assess_allocation;\n sa @sa_assess_allocation;\n}\n\ntrace trace_oa_assess_on_entry \"Assess when repair is needed ↔ Assess when repair is needed\" id \"fb02420d-b066-5773-87c1-198a056e0731\" {\n baseline {\n oa {\n description \"\";\n name \"Assess when repair is needed\";\n };\n sa {\n description \"\";\n name \"Assess when repair is needed\";\n };\n };\n kind Manual;\n oa @oa_assess_on_entry;\n sa @sa_assess_on_entry;\n}\n\ntrace trace_oa_assess_step \"Assess the alarm ↔ Assess the alarm\" id \"e848da41-445e-5e3c-8b4e-ef53fdddf1e1\" {\n baseline {\n oa {\n description \"\";\n name \"Assess the alarm\";\n };\n sa {\n description \"\";\n name \"Assess the alarm\";\n };\n };\n kind Sequence;\n oa @oa_assess_step;\n sa @sa_assess_step;\n}\n\ntrace trace_oa_assess_then_decide \"Continue ↔ Continue\" id \"a5c1eb01-a95f-5f7a-9742-7f201493d7aa\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_assess_then_decide;\n sa @sa_assess_then_decide;\n}\n\ntrace trace_oa_assessment_action \"Assess pressure alarm ↔ Assess pressure alarm\" id \"3a33de40-20a3-5252-899c-c12dc35e9783\" {\n baseline {\n oa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n };\n kind Sequence;\n oa @oa_assessment_action;\n sa @sa_assessment_action;\n}\n\ntrace trace_oa_assessment_delivery \"Chain involvement: Assess an alarm ↔ Chain involvement: Assess an alarm\" id \"5b96bfed-63e2-5d7f-b882-91e8b81f8efe\" {\n baseline {\n oa {\n description \"\";\n name \"Chain involvement: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Chain involvement: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_assessment_delivery;\n sa @sa_assessment_delivery;\n}\n\ntrace trace_oa_assessment_procedure \"Assess an alarm procedure ↔ Assess an alarm procedure\" id \"6ca4c78a-a5f2-5470-b401-732f5a8825d0\" {\n baseline {\n oa {\n description \"\";\n name \"Assess an alarm procedure\";\n };\n sa {\n description \"\";\n name \"Assess an alarm procedure\";\n };\n };\n kind Sequence;\n oa @oa_assessment_procedure;\n sa @sa_assessment_procedure;\n}\n\ntrace trace_oa_assessment_support \"Capability involvement: Assess an alarm ↔ Capability involvement: Assess an alarm\" id \"6e13cf86-7242-5e33-8912-b037cf6e8c87\" {\n baseline {\n oa {\n description \"\";\n name \"Capability involvement: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Capability involvement: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_assessment_support;\n sa @sa_assessment_support;\n}\n\ntrace trace_oa_call \"Request valve repair ↔ Request valve repair\" id \"f0cc86e5-f8fd-5091-a40d-dbfb6515072f\" {\n baseline {\n oa {\n description \"\";\n name \"Request valve repair\";\n };\n sa {\n description \"\";\n name \"Request valve repair\";\n };\n };\n kind Scenario;\n oa @oa_call;\n sa @sa_call;\n}\n\ntrace trace_oa_caller \"Controller ↔ Controller\" id \"241dfdac-2450-5704-a4cb-9f1047db1b6d\" {\n baseline {\n oa {\n description \"\";\n name \"Controller\";\n };\n sa {\n description \"\";\n name \"Controller\";\n };\n };\n kind Scenario;\n oa @oa_caller;\n sa @sa_caller;\n}\n\ntrace trace_oa_confirm \"Confirm safe pressure ↔ Confirm safe pressure\" id \"d7773ff5-cef5-50c1-8f9d-c5659115e1f0\" {\n baseline {\n oa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n };\n oa @oa_confirm;\n sa @sa_confirm;\n}\n\ntrace trace_oa_confirm_allocation \"Allocation: Confirm safe pressure ↔ Allocation: Confirm safe pressure\" id \"2fdcbc6f-526e-5a4e-bde5-314cf0cf3ef3\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Allocation: Confirm safe pressure\";\n };\n };\n kind Manual;\n oa @oa_confirm_allocation;\n sa @sa_confirm_allocation;\n}\n\ntrace trace_oa_confirm_path \"Continue ↔ Continue\" id \"a106d183-c239-5c9f-b1f1-141af19fc778\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_confirm_path;\n sa @sa_confirm_path;\n}\n\ntrace trace_oa_confirm_step \"Confirm safe pressure ↔ Confirm safe pressure\" id \"154abfce-c311-52d1-85d1-3f4c85203b26\" {\n baseline {\n oa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n };\n kind Sequence;\n oa @oa_confirm_step;\n sa @sa_confirm_step;\n}\n\ntrace trace_oa_contact \"Technician service conversation ↔ Technician service conversation\" id \"c9d65349-3400-58eb-8a55-57fa02de4b67\" {\n baseline {\n oa {\n description \"\";\n name \"Technician service conversation\";\n };\n sa {\n description \"\";\n name \"Technician service conversation\";\n };\n };\n kind Exchange;\n oa @oa_contact;\n sa @sa_contact;\n}\n\ntrace trace_oa_contact_category \"Field contact ↔ Field contact\" id \"e96ff119-bb4d-5fd9-9ab7-2ede0d3fd418\" {\n baseline {\n oa {\n description \"\";\n name \"Field contact\";\n };\n sa {\n description \"\";\n name \"Field contact\";\n };\n };\n kind Manual;\n oa @oa_contact_category;\n sa @sa_contact_category;\n}\n\ntrace trace_oa_control \"Control room ↔ Pressure coordination service\" id \"aba528ea-e396-582a-bfba-f6e2212d391a\" {\n baseline {\n oa {\n description \"\";\n name \"Control room\";\n };\n sa {\n description \"\";\n name \"Pressure coordination service\";\n };\n };\n kind Participant;\n oa @oa_control;\n sa @sa_control;\n}\n\ntrace trace_oa_conversation \"Repair request and measured reply ↔ Repair request and measured reply\" id \"3694c752-ba80-5702-a7d7-9cc66b6b01d8\" {\n baseline {\n oa {\n description \"\";\n name \"Repair request and measured reply\";\n };\n sa {\n description \"\";\n name \"Repair request and measured reply\";\n };\n };\n kind Scenario;\n oa @oa_conversation;\n sa @sa_conversation;\n}\n\ntrace trace_oa_decision \"Can a remote reset safely recover pressure? ↔ Can a remote reset safely recover pressure?\" id \"bbf6f1a1-cb2b-5632-8ec0-bf4b8ef1a941\" {\n baseline {\n oa {\n description \"\";\n name \"Can a remote reset safely recover pressure?\";\n };\n sa {\n description \"\";\n name \"Can a remote reset safely recover pressure?\";\n };\n };\n kind Sequence;\n oa @oa_decision;\n sa @sa_decision;\n}\n\ntrace trace_oa_field_merge \"Continue ↔ Continue\" id \"d32dd433-9c9e-5b57-9355-2970cc44a5f2\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_field_merge;\n sa @sa_field_merge;\n}\n\ntrace trace_oa_field_path \"else ↔ else\" id \"2e849e31-35aa-5aef-a989-26948038e52b\" {\n baseline {\n oa {\n description \"\";\n name \"else\";\n };\n sa {\n description \"\";\n name \"else\";\n };\n };\n kind Manual;\n oa @oa_field_path;\n sa @sa_field_path;\n}\n\ntrace trace_oa_field_procedure \"Field repair procedure ↔ Field repair procedure\" id \"bb72b2c2-6e32-5f65-9d8e-b33c1a65da37\" {\n baseline {\n oa {\n description \"\";\n name \"Field repair procedure\";\n };\n sa {\n description \"\";\n name \"Field repair procedure\";\n };\n };\n kind Sequence;\n oa @oa_field_procedure;\n sa @sa_field_procedure;\n}\n\ntrace trace_oa_full_scenario \"Restore supply through field repair ↔ Restore supply through field repair\" id \"435bae4c-cf6d-59f3-9eb5-d660ebeec079\" {\n baseline {\n oa {\n description \"\";\n name \"Restore supply through field repair\";\n };\n sa {\n description \"\";\n name \"Restore supply through field repair\";\n };\n };\n kind Scenario;\n oa @oa_full_scenario;\n sa @sa_full_scenario;\n}\n\ntrace trace_oa_high_pressure \"Pressure alarm detected ↔ Pressure alarm detected\" id \"b97749d4-f9ad-5fb7-9d78-bc60a74e98eb\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure alarm detected\";\n };\n sa {\n description \"\";\n name \"Pressure alarm detected\";\n };\n };\n kind State;\n oa @oa_high_pressure;\n sa @sa_high_pressure;\n}\n\ntrace trace_oa_include_triage \"Capability include: Assess an alarm ↔ Capability include: Assess an alarm\" id \"77073fcb-53aa-5f06-987a-0317cbb6971d\" {\n baseline {\n oa {\n description \"\";\n name \"Capability include: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Capability include: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_include_triage;\n sa @sa_include_triage;\n}\n\ntrace trace_oa_merge \"Recovery path completed ↔ Recovery path completed\" id \"0c9de959-d366-5765-98eb-450ea27bd316\" {\n baseline {\n oa {\n description \"\";\n name \"Recovery path completed\";\n };\n sa {\n description \"\";\n name \"Recovery path completed\";\n };\n };\n kind Sequence;\n oa @oa_merge;\n sa @sa_merge;\n}\n\ntrace trace_oa_mission \"Maintain safe water supply ↔ Maintain safe water supply\" id \"c987bd0f-87f6-5550-945d-2a42450fe1c5\" {\n baseline {\n oa {\n description \"\";\n name \"Maintain safe water supply\";\n };\n sa {\n description \"\";\n name \"Maintain safe water supply\";\n };\n };\n kind Mission;\n oa @oa_mission;\n sa @sa_mission;\n}\n\ntrace trace_oa_mission_delivery \"Mission capability: Restore a safe supply ↔ Mission capability: Restore a safe supply\" id \"aa164208-394d-5bc7-8462-b0043f682aad\" {\n baseline {\n oa {\n description \"\";\n name \"Mission capability: Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Mission capability: Restore a safe supply\";\n };\n };\n kind Manual;\n oa @oa_mission_delivery;\n sa @sa_mission_delivery;\n}\n\ntrace trace_oa_mission_participant \"Mission involvement: Maintain safe water supply ↔ Mission involvement: Maintain safe water supply\" id \"8d693d90-5017-56af-b056-d29d3cb46baa\" {\n baseline {\n oa {\n description \"\";\n name \"Mission involvement: Maintain safe water supply\";\n };\n sa {\n description \"\";\n name \"Mission involvement: Maintain safe water supply\";\n };\n };\n kind Manual;\n oa @oa_mission_participant;\n sa @sa_mission_participant;\n}\n\ntrace trace_oa_monitor \"Pressure supervision ↔ Pressure supervision\" id \"b53863a2-ed80-5f98-ad3c-50e1b821066d\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure supervision\";\n };\n sa {\n description \"\";\n name \"Pressure supervision\";\n };\n };\n kind State;\n oa @oa_monitor;\n sa @sa_monitor;\n}\n\ntrace trace_oa_monitor_initial \"Start ↔ Start\" id \"48d243f0-553f-507e-acb0-9474ae156b63\" {\n baseline {\n oa {\n description \"\";\n name \"Start\";\n };\n sa {\n description \"\";\n name \"Start\";\n };\n };\n kind State;\n oa @oa_monitor_initial;\n sa @sa_monitor_initial;\n}\n\ntrace trace_oa_monitor_region \"Supervision cycle ↔ Supervision cycle\" id \"208753e0-9151-50d8-86ca-29fc28eca80b\" {\n baseline {\n oa {\n description \"\";\n name \"Supervision cycle\";\n };\n sa {\n description \"\";\n name \"Supervision cycle\";\n };\n };\n kind State;\n oa @oa_monitor_region;\n sa @sa_monitor_region;\n}\n\ntrace trace_oa_monitoring \"Monitoring ↔ Monitoring\" id \"12ec320f-2e14-5a5a-8c6b-bd2b6471dae9\" {\n baseline {\n oa {\n description \"\";\n name \"Monitoring\";\n };\n sa {\n description \"\";\n name \"Monitoring\";\n };\n };\n kind State;\n oa @oa_monitoring;\n sa @sa_monitoring;\n}\n\ntrace trace_oa_normal_transition \"State transition: Monitoring ↔ State transition: Monitoring\" id \"c47cf0b4-fe15-5175-bd62-5292e43adc39\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n sa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n };\n kind Manual;\n oa @oa_normal_transition;\n sa @sa_normal_transition;\n}\n\ntrace trace_oa_outer_controller \"Controller ↔ Controller\" id \"fd195498-dbba-523b-94d0-49f3b9531a3e\" {\n baseline {\n oa {\n description \"\";\n name \"Controller\";\n };\n sa {\n description \"\";\n name \"Controller\";\n };\n };\n kind Scenario;\n oa @oa_outer_controller;\n sa @sa_outer_controller;\n}\n\ntrace trace_oa_outer_technician \"Technician ↔ Technician\" id \"c132a0df-1270-55a8-ac4e-6e5075823dc1\" {\n baseline {\n oa {\n description \"\";\n name \"Technician\";\n };\n sa {\n description \"\";\n name \"Technician\";\n };\n };\n kind Scenario;\n oa @oa_outer_technician;\n sa @sa_outer_technician;\n}\n\ntrace trace_oa_pressure \"Measured pressure ↔ Measured pressure\" id \"d9d47371-e98d-5d29-9df7-4de2d28a5c73\" {\n baseline {\n oa {\n description \"\";\n name \"Measured pressure\";\n };\n sa {\n description \"\";\n name \"Measured pressure\";\n };\n };\n kind Item;\n oa @oa_pressure;\n sa @sa_pressure;\n}\n\ntrace trace_oa_pressure_parameter \"Pressure before / after repair ↔ Pressure before / after repair\" id \"0d905fbb-5b3c-56f0-9f11-a27091901eb0\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure before / after repair\";\n };\n sa {\n description \"\";\n name \"Pressure before / after repair\";\n };\n };\n kind Item;\n oa @oa_pressure_parameter;\n sa @sa_pressure_parameter;\n}\n\ntrace trace_oa_remote_merge \"Continue ↔ Continue\" id \"1b788e74-36b2-5c17-a936-642dbe51ca3c\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_remote_merge;\n sa @sa_remote_merge;\n}\n\ntrace trace_oa_remote_path \"remote reset is authorized ↔ remote reset is authorized\" id \"eee79ec1-41d7-5374-986e-995a56b9026f\" {\n baseline {\n oa {\n description \"\";\n name \"remote reset is authorized\";\n };\n sa {\n description \"\";\n name \"remote reset is authorized\";\n };\n };\n kind Manual;\n oa @oa_remote_path;\n sa @sa_remote_path;\n}\n\ntrace trace_oa_repair \"Repair valve in the field ↔ Repair valve in the field\" id \"b13452bb-1a55-5ad6-b6d9-a37fb34e8d13\" {\n baseline {\n oa {\n description \"\";\n name \"Repair valve in the field\";\n };\n sa {\n description \"\";\n name \"Repair valve in the field\";\n };\n };\n oa @oa_repair;\n sa @sa_repair;\n}\n\ntrace trace_oa_repair_allocation \"Allocation: Repair valve in the field ↔ Allocation: Repair valve in the field\" id \"3714d547-006f-5c3a-97f8-175ccc23d994\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Repair valve in the field\";\n };\n sa {\n description \"\";\n name \"Allocation: Repair valve in the field\";\n };\n };\n kind Manual;\n oa @oa_repair_allocation;\n sa @sa_repair_allocation;\n}\n\ntrace trace_oa_repair_operation \"Valve repair ↔ Valve repair\" id \"cf92cedf-ea1a-510c-9bc5-89c16d60e8d2\" {\n baseline {\n oa {\n description \"\";\n name \"Valve repair\";\n };\n sa {\n description \"\";\n name \"Valve repair\";\n };\n };\n kind Item;\n oa @oa_repair_operation;\n sa @sa_repair_operation;\n}\n\ntrace trace_oa_repair_report \"Report repair result ↔ Report repair result\" id \"424eca39-1c29-5a2f-b9ee-33dd018926aa\" {\n baseline {\n oa {\n description \"\";\n name \"Report repair result\";\n };\n sa {\n description \"\";\n name \"Report repair result\";\n };\n };\n kind Exchange;\n oa @oa_repair_report;\n sa @sa_repair_report;\n}\n\ntrace trace_oa_repair_request \"Request field repair ↔ Request field repair\" id \"da8efc3c-78df-5b10-b2e5-1e28d6d99e86\" {\n baseline {\n oa {\n description \"\";\n name \"Request field repair\";\n };\n sa {\n description \"\";\n name \"Request field repair\";\n };\n };\n kind Exchange;\n oa @oa_repair_request;\n sa @sa_repair_request;\n}\n\ntrace trace_oa_repair_step \"Repair the valve ↔ Repair the valve\" id \"ac3aa6b0-568e-5a3f-963a-172aa3cfc7a4\" {\n baseline {\n oa {\n description \"\";\n name \"Repair the valve\";\n };\n sa {\n description \"\";\n name \"Repair the valve\";\n };\n };\n kind Sequence;\n oa @oa_repair_step;\n sa @sa_repair_step;\n}\n\ntrace trace_oa_repair_then_report \"Sequence link: Report the measured result ↔ Sequence link: Report the measured result\" id \"f8d34715-1dc8-504b-acdf-78b770aad1e8\" {\n baseline {\n oa {\n description \"\";\n name \"Sequence link: Report the measured result\";\n };\n sa {\n description \"\";\n name \"Sequence link: Report the measured result\";\n };\n };\n kind Manual;\n oa @oa_repair_then_report;\n sa @sa_repair_then_report;\n}\n\ntrace trace_oa_repair_traffic \"Repair work exchanges ↔ Repair work exchanges\" id \"3e7bde54-f9c1-549f-9e5b-2ce1ecb685a7\" {\n baseline {\n oa {\n description \"\";\n name \"Repair work exchanges\";\n };\n sa {\n description \"\";\n name \"Repair work exchanges\";\n };\n };\n kind Manual;\n oa @oa_repair_traffic;\n sa @sa_repair_traffic;\n}\n\ntrace trace_oa_reply \"Return pressure after repair ↔ Return pressure after repair\" id \"595b5729-ccd9-5291-b5d9-30d8c8bd9dfa\" {\n baseline {\n oa {\n description \"\";\n name \"Return pressure after repair\";\n };\n sa {\n description \"\";\n name \"Return pressure after repair\";\n };\n };\n kind Scenario;\n oa @oa_reply;\n sa @sa_reply;\n}\n\ntrace trace_oa_report_step \"Report the measured result ↔ Report the measured result\" id \"e63b14d2-f408-56a2-aec4-be20cf4ace73\" {\n baseline {\n oa {\n description \"\";\n name \"Report the measured result\";\n };\n sa {\n description \"\";\n name \"Report the measured result\";\n };\n };\n kind Sequence;\n oa @oa_report_step;\n sa @sa_report_step;\n}\n\ntrace trace_oa_request_step \"Request the field repair ↔ Request the field repair\" id \"ad697c00-07d9-5799-89b3-2c78da8dff4d\" {\n baseline {\n oa {\n description \"\";\n name \"Request the field repair\";\n };\n sa {\n description \"\";\n name \"Request the field repair\";\n };\n };\n kind Sequence;\n oa @oa_request_step;\n sa @sa_request_step;\n}\n\ntrace trace_oa_request_then_repair \"Sequence link: Repair the valve ↔ Sequence link: Repair the valve\" id \"f2b7050c-629d-533f-b873-bffc33e072f7\" {\n baseline {\n oa {\n description \"\";\n name \"Sequence link: Repair the valve\";\n };\n sa {\n description \"\";\n name \"Sequence link: Repair the valve\";\n };\n };\n kind Manual;\n oa @oa_request_then_repair;\n sa @sa_request_then_repair;\n}\n\ntrace trace_oa_reset \"Reset valve remotely ↔ Reset valve remotely\" id \"82a5be1a-92a8-578d-9448-086062a20d8f\" {\n baseline {\n oa {\n description \"\";\n name \"Reset valve remotely\";\n };\n sa {\n description \"\";\n name \"Reset valve remotely\";\n };\n };\n oa @oa_reset;\n sa @sa_reset;\n}\n\ntrace trace_oa_reset_allocation \"Allocation: Reset valve remotely ↔ Allocation: Reset valve remotely\" id \"98ef05b5-5381-5d35-a433-ebab55e9f382\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Reset valve remotely\";\n };\n sa {\n description \"\";\n name \"Allocation: Reset valve remotely\";\n };\n };\n kind Manual;\n oa @oa_reset_allocation;\n sa @sa_reset_allocation;\n}\n\ntrace trace_oa_reset_step \"Try the authorized remote reset ↔ Try the authorized remote reset\" id \"ff84fc06-6f99-5cf3-b73d-236e9eff98a3\" {\n baseline {\n oa {\n description \"\";\n name \"Try the authorized remote reset\";\n };\n sa {\n description \"\";\n name \"Try the authorized remote reset\";\n };\n };\n kind Sequence;\n oa @oa_reset_step;\n sa @sa_reset_step;\n}\n\ntrace trace_oa_responder \"Technician ↔ Technician\" id \"c5051628-b7af-5fb1-a014-bb60a0b46e03\" {\n baseline {\n oa {\n description \"\";\n name \"Technician\";\n };\n sa {\n description \"\";\n name \"Technician\";\n };\n };\n kind Scenario;\n oa @oa_responder;\n sa @sa_responder;\n}\n\ntrace trace_oa_response \"Handle a pressure alarm ↔ Handle a pressure alarm\" id \"d3626818-4846-5893-9c02-3407cdba7f3c\" {\n baseline {\n oa {\n description \"\";\n name \"Handle a pressure alarm\";\n };\n sa {\n description \"\";\n name \"Handle a pressure alarm\";\n };\n };\n kind Sequence;\n oa @oa_response;\n sa @sa_response;\n}\n\ntrace trace_oa_response_delivery \"Chain involvement: Restore a safe supply ↔ Chain involvement: Restore a safe supply\" id \"70c90b0c-85ce-574a-a217-f0d19fad30e1\" {\n baseline {\n oa {\n description \"\";\n name \"Chain involvement: Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Chain involvement: Restore a safe supply\";\n };\n };\n kind Manual;\n oa @oa_response_delivery;\n sa @sa_response_delivery;\n}\n\ntrace trace_oa_restore \"Restore a safe supply ↔ Restore a safe supply\" id \"0fbef164-b5d3-58ba-ba41-54d0e63709ab\" {\n baseline {\n oa {\n description \"\";\n name \"Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Restore a safe supply\";\n };\n };\n kind Capability;\n oa @oa_restore;\n sa @sa_restore;\n}\n\ntrace trace_oa_restore_work \"Restore safe pressure ↔ Restore safe pressure\" id \"82cca563-9d5d-5479-aa1a-9db03e9674d1\" {\n baseline {\n oa {\n description \"\";\n name \"Restore safe pressure\";\n };\n sa {\n description \"\";\n name \"Restore safe pressure\";\n };\n };\n oa @oa_restore_work;\n sa @sa_restore_work;\n}\n\ntrace trace_oa_start_monitoring \"State transition: Monitoring ↔ State transition: Monitoring\" id \"07a7b82a-b5a7-5737-abfa-09e422f7420e\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n sa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n };\n kind Manual;\n oa @oa_start_monitoring;\n sa @sa_start_monitoring;\n}\n\ntrace trace_oa_technician \"Field technician ↔ Field technician\" id \"d47d3c36-50fb-5189-b801-d6fd1694bd49\" {\n baseline {\n oa {\n description \"\";\n name \"Field technician\";\n };\n sa {\n description \"\";\n name \"Field technician\";\n };\n };\n kind Participant;\n oa @oa_technician;\n sa @sa_technician;\n}\n\ntrace trace_oa_triage \"Assess an alarm ↔ Assess an alarm\" id \"6acd072d-431e-5881-ab20-1813b4fda0c5\" {\n baseline {\n oa {\n description \"\";\n name \"Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Assess an alarm\";\n };\n };\n kind Capability;\n oa @oa_triage;\n sa @sa_triage;\n}\n\ntrace trace_oa_use_conversation \"Use the reviewed repair conversation ↔ Use the reviewed repair conversation\" id \"f5733d3f-eee3-5cf7-a422-5edd2054d6a6\" {\n baseline {\n oa {\n description \"\";\n name \"Use the reviewed repair conversation\";\n };\n sa {\n description \"\";\n name \"Use the reviewed repair conversation\";\n };\n };\n kind Scenario;\n oa @oa_use_conversation;\n sa @sa_use_conversation;\n}\n\ntrace trace_oa_use_field \"Use the field repair procedure ↔ Use the field repair procedure\" id \"7a6b4b9c-4220-546a-a752-1587c2881fe1\" {\n baseline {\n oa {\n description \"\";\n name \"Use the field repair procedure\";\n };\n sa {\n description \"\";\n name \"Use the field repair procedure\";\n };\n };\n kind Sequence;\n oa @oa_use_field;\n sa @sa_use_field;\n}\n\ntrace trace_oa_waiting \"Awaiting repair ↔ Awaiting repair\" id \"0754be23-e4b8-53bc-b03c-89c2dbd80361\" {\n baseline {\n oa {\n description \"\";\n name \"Awaiting repair\";\n };\n sa {\n description \"\";\n name \"Awaiting repair\";\n };\n };\n kind State;\n oa @oa_waiting;\n sa @sa_waiting;\n}\n\n", "oa/capabilities.arcadia": "oa_mission oa_mission \"Maintain safe water supply\" id \"c9c61f50-06e0-5d17-973d-dcc57cd5cc90\" {\n}\n\noa_capability oa_restore \"Restore a safe supply\" id \"3dfee23a-148b-5cec-ad2d-b774e84ea5bb\" {\n}\n\noa_capability oa_triage \"Assess an alarm\" id \"6a30b763-cc51-546d-907f-5c63657cfd03\" {\n}\n\nmission_capability oa_mission_delivery \"Mission capability: Restore a safe supply\" id \"1f8b1898-65f6-5360-99cf-b78a71bd50ec\" {\n source @oa_mission;\n target @oa_restore;\n}\n\ncapability_include oa_include_triage \"Capability include: Assess an alarm\" id \"e21d9a54-ae8e-5618-a4f8-67ee22b92638\" {\n source @oa_restore;\n target @oa_triage;\n}\n\n", "oa/model.arcadia": "oa_exchange_category oa_contact_category \"Field contact\" id \"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771\" {\n exchanges [@oa_contact];\n family \"Participant\";\n}\n\noa_event oa_high_pressure \"Pressure alarm detected\" id \"65d6b8d6-271a-5c84-8b42-abbe310c955e\" {\n body {\n Change {\n expression \"measured_pressure > operating_limit\";\n };\n };\n}\n\noa_exchange_category oa_repair_traffic \"Repair work exchanges\" id \"9349b353-53f2-56f8-b571-a05b09335cdf\" {\n exchanges [@oa_repair_request, @oa_repair_report];\n}\n\n", "oa/participants.arcadia": "oa_entity oa_control \"Control room\" id \"32aa9940-df6e-5a12-b9bd-6337e2d2ed22\" {\n}\n\noa_actor oa_technician \"Field technician\" id \"e07c3952-4a1a-5cc7-b7d5-03a01101ce49\" {\n}\n\nallocation oa_assess_allocation \"Allocation: Assess pressure alarm\" id \"594c61cd-94e0-5c07-890d-edfd520d7df9\" {\n source @oa_control;\n target @oa_assess;\n}\n\nallocation oa_confirm_allocation \"Allocation: Confirm safe pressure\" id \"bfd4326e-ea65-5269-b5e6-e063a355d1e9\" {\n source @oa_control;\n target @oa_confirm;\n}\n\ncommunication_mean oa_contact \"Technician service conversation\" id \"27b47887-baf0-518b-bf87-f5acbf7d0b93\" {\n items [@oa_repair_operation];\n source @oa_control;\n target @oa_technician;\n}\n\nexchange_allocation oa_report_carriage \"Exchange allocation: Report repair result\" id \"4549d3fa-5ab9-52a9-b4f9-3a78fc9d625a\" {\n source @oa_contact;\n target @oa_repair_report;\n}\n\nexchange_allocation oa_request_carriage \"Exchange allocation: Request field repair\" id \"094b888c-450c-5c4f-971a-7d75db059574\" {\n source @oa_contact;\n target @oa_repair_request;\n}\n\nmission_involvement oa_mission_participant \"Mission involvement: Maintain safe water supply\" id \"0c4c9e58-ff32-5c00-b82a-d408a4be0183\" {\n source @oa_control;\n target @oa_mission;\n}\n\nallocation oa_reset_allocation \"Allocation: Reset valve remotely\" id \"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a\" {\n source @oa_control;\n target @oa_reset;\n}\n\nallocation oa_repair_allocation \"Allocation: Repair valve in the field\" id \"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2\" {\n source @oa_technician;\n target @oa_repair;\n}\n\n", "oa/types.arcadia": "oa_data_type oa_pressure \"Measured pressure\" id \"e7824764-5db9-5384-8198-2fbaea2b10b2\" {\n definition {\n Real {\n maximum 600.0;\n minimum 0.0;\n };\n };\n unit \"kPa\";\n}\n\noa_exchange_item oa_repair_operation \"Valve repair\" id \"d736c7d6-d369-550a-8ba4-dae223e40bb3\" {\n mechanism Operation;\n}\n\noa_data_field oa_pressure_parameter \"Pressure before / after repair\" id \"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7\" {\n direction InOut;\n parent @oa_repair_operation;\n type_ref {\n Named @oa_pressure;\n };\n}\n\n", "sa/capabilities.arcadia": "sa_mission sa_mission \"Maintain safe water supply\" id \"5ad034b1-084d-5273-9e70-971671766132\" {\n}\n\nsa_capability sa_restore \"Restore a safe supply\" id \"81259051-370a-512d-a3b5-6420a6f933b6\" {\n}\n\nsa_capability sa_triage \"Assess an alarm\" id \"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f\" {\n}\n\nmission_capability sa_mission_delivery \"Mission capability: Restore a safe supply\" id \"a0902e0f-3d18-576a-9aca-975a136dfdd7\" {\n source @sa_mission;\n target @sa_restore;\n}\n\ncapability_include sa_include_triage \"Capability include: Assess an alarm\" id \"f3fe7690-734a-5877-8b57-a6599a4033c4\" {\n source @sa_restore;\n target @sa_triage;\n}\n\n", "sa/model.arcadia": "sa_exchange_category sa_contact_category \"Field contact\" id \"781cbe75-410f-5cc5-aeb8-a43491f77b99\" {\n exchanges [@sa_contact];\n family \"Participant\";\n}\n\nsa_event sa_high_pressure \"Pressure alarm detected\" id \"01490fa8-2f01-5ac8-9722-d55d45414379\" {\n body {\n Change {\n expression \"measured_pressure > operating_limit\";\n };\n };\n}\n\nsa_exchange_category sa_repair_traffic \"Repair work exchanges\" id \"a9a47e48-100c-57a8-95f0-7fe24da94f94\" {\n exchanges [@sa_repair_request, @sa_repair_report];\n}\n\n", "sa/participants.arcadia": "sa_system sa_control \"Pressure coordination service\" id \"435bf87c-73fd-5e4d-978a-4c471bc9eaf0\" {\n}\n\nsa_port sa_control_port \"Repair service client\" id \"98d411e7-7c65-5c3f-b543-8bf0f2522ea2\" {\n contract {\n Component {\n kind Standard;\n orientation Unset;\n };\n };\n description \"Explicitly chosen Standard component port for the repair service.\";\n parent @sa_control;\n}\n\nsa_actor sa_technician \"Field technician\" id \"c05b9422-b9da-5de5-b21d-07ad23bd2b8a\" {\n}\n\nsa_port sa_technician_port \"Repair service provider\" id \"e6d69cbd-99d7-596b-bbe3-dada6118a600\" {\n contract {\n Component {\n kind Standard;\n orientation Unset;\n };\n };\n description \"Explicitly chosen Standard component port for the repair service.\";\n parent @sa_technician;\n}\n\nallocation sa_assess_allocation \"Allocation: Assess pressure alarm\" id \"9b9356d7-2db2-5a94-a47e-ea892cf02afe\" {\n source @sa_control;\n target @sa_assess;\n}\n\nallocation sa_audit_allocation \"Allocation: Audit pressure thresholds\" id \"1b245065-7242-5d81-8472-aaeb932054c9\" {\n source @sa_control;\n target @sa_audit_thresholds;\n}\n\nallocation sa_confirm_allocation \"Allocation: Confirm safe pressure\" id \"b76bf8de-2fa4-563f-a540-dd30f30e6c49\" {\n source @sa_control;\n target @sa_confirm;\n}\n\ninterface_requirement sa_client_requires \"Interface requirement: Valve repair service\" id \"4f85337b-f6eb-533c-a45a-9a5d1d9567ca\" {\n source @sa_control_port;\n target @sa_repair_interface;\n}\n\nboundary_exchange sa_contact \"Technician service conversation\" id \"63009b5f-539e-5914-b630-ec6b7fefb4d5\" {\n items [@sa_repair_operation];\n oriented false;\n source @sa_control_port;\n target @sa_technician_port;\n}\n\nexchange_allocation sa_report_carriage \"Exchange allocation: Report repair result\" id \"ff9897b3-a23a-5994-a5b3-99a5b4d34ceb\" {\n source @sa_contact;\n target @sa_repair_report;\n}\n\nexchange_allocation sa_request_carriage \"Exchange allocation: Request field repair\" id \"4c4c4851-5a3d-5bb9-94df-b19f9cf39819\" {\n source @sa_contact;\n target @sa_repair_request;\n}\n\nport_allocation sa_port_report_in \"Port allocation: Report repair result input\" id \"568c5c01-de21-52a2-83bd-afdddc158085\" {\n source @sa_control_port;\n target @sa_repair_report_in;\n}\n\nport_allocation sa_port_request_out \"Port allocation: Request field repair output\" id \"55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9\" {\n source @sa_control_port;\n target @sa_repair_request_out;\n}\n\nmission_involvement sa_mission_participant \"Mission involvement: Maintain safe water supply\" id \"1c1e5634-ba8c-591f-b143-90a27cdc6cd2\" {\n source @sa_control;\n target @sa_mission;\n}\n\nallocation sa_reset_allocation \"Allocation: Reset valve remotely\" id \"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3\" {\n source @sa_control;\n target @sa_reset;\n}\n\nallocation sa_repair_allocation \"Allocation: Repair valve in the field\" id \"725f2e1b-aa2c-5615-9b1f-28da178168fa\" {\n source @sa_technician;\n target @sa_repair;\n}\n\nport_allocation sa_port_report_out \"Port allocation: Report repair result output\" id \"e53b7a40-e8a3-5b3f-826d-c2b5c164a84a\" {\n source @sa_technician_port;\n target @sa_repair_report_out;\n}\n\nport_allocation sa_port_request_in \"Port allocation: Request field repair input\" id \"09eaa992-4cdf-5ea3-b748-f10fd74b8cba\" {\n source @sa_technician_port;\n target @sa_repair_request_in;\n}\n\ninterface_provision sa_provider_provides \"Interface provision: Valve repair service\" id \"55f89fbf-aa3c-5ae1-95ef-ac676f9c1ada\" {\n source @sa_technician_port;\n target @sa_repair_interface;\n}\n\n", "sa/types.arcadia": "sa_data_type sa_pressure \"Measured pressure\" id \"87d0a95b-af1b-5352-b753-e4c6533671a5\" {\n definition {\n Real {\n maximum 600.0;\n minimum 0.0;\n };\n };\n unit \"kPa\";\n}\n\nsa_interface sa_repair_interface \"Valve repair service\" id \"a4b8942e-a975-5f88-ad14-8f38c345baac\" {\n}\n\nsa_exchange_item sa_repair_operation \"Valve repair\" id \"a962fc5e-3ab0-5296-8b0d-fd84633f9218\" {\n mechanism Operation;\n}\n\nsa_data_field sa_pressure_parameter \"Pressure before / after repair\" id \"bb12ba5d-aab5-5a1b-99de-c767f5365b57\" {\n direction InOut;\n parent @sa_repair_operation;\n type_ref {\n Named @sa_pressure;\n };\n}\n\ninterface_item_allocation sa_repair_interface_item \"Repair operation contract\" id \"f074e041-23cf-54ad-af9c-f171e30621e7\" {\n acquisition Accept;\n source @sa_repair_interface;\n target @sa_repair_operation;\n transmission Synchronous;\n}\n\n", "views/diagram_oa_allocation_view.arcadia": "diagram oa_allocation_view \"1 · OA responsibility and repair traffic\" id \"103ea62c-ac56-5827-94e7-cf09bca96ccc\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n projection Allocation;\n}\n\nnode oa_allocation_view_oa_assess id \"5ae1c46d-59a3-50fd-8cc3-b292df21f951\" {\n diagram @oa_allocation_view;\n element @oa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_confirm id \"edd74060-ac61-5450-a57c-a6577daa5d50\" {\n diagram @oa_allocation_view;\n element @oa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_control id \"3191e05c-1c7f-5f0e-beb0-5f3bded54c48\" {\n diagram @oa_allocation_view;\n element @oa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_repair id \"202ebe37-ddb4-5099-8ce9-ec3e895ab9e9\" {\n diagram @oa_allocation_view;\n element @oa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_reset id \"7066f78c-9736-5349-b94a-0587331b980e\" {\n diagram @oa_allocation_view;\n element @oa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_technician id \"d27f28ef-f10a-5355-9a05-6f2fd39b7de6\" {\n diagram @oa_allocation_view;\n element @oa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "views/diagram_sa_allocation_view.arcadia": "diagram sa_allocation_view \"2 · SA service boundary and functions\" id \"35d3c24b-289e-59e5-a610-8333e2c6a4bb\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Allocation;\n}\n\nnode sa_allocation_view_sa_assess id \"60f6ad74-b69e-5aef-b832-f1bd60b903ae\" {\n diagram @sa_allocation_view;\n element @sa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_confirm id \"7e3ba36f-bc68-5520-bdb9-77083bb7bba2\" {\n diagram @sa_allocation_view;\n element @sa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_control id \"8345c76a-8d85-5c31-902e-ec1cd33ed4a3\" {\n diagram @sa_allocation_view;\n element @sa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_repair id \"34630a18-41b0-5fdd-bff4-ee86e93e8651\" {\n diagram @sa_allocation_view;\n element @sa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_reset id \"73406244-ebd7-5995-86c7-e17c73c50b32\" {\n diagram @sa_allocation_view;\n element @sa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_technician id \"f7225d1c-e506-505d-bb20-916950269d4b\" {\n diagram @sa_allocation_view;\n element @sa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "views/diagram_sa_capability_view.arcadia": "diagram sa_capability_view \"4 · SA mission and included capability\" id \"3e6ad194-61b5-584c-b0f0-a78a20af5781\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Capabilities;\n}\n\nnode sa_capability_view_sa_control id \"41ddb68b-bd2b-5f91-82eb-efde01157828\" {\n diagram @sa_capability_view;\n element @sa_control;\n position {\n x 60.0;\n y 60.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_mission id \"4b814335-bf98-5b68-85d5-ea549766517a\" {\n diagram @sa_capability_view;\n element @sa_mission;\n position {\n x 420.0;\n y 60.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_restore id \"d3bc13f9-7726-5280-83fe-63f391c45afb\" {\n diagram @sa_capability_view;\n element @sa_restore;\n position {\n x 420.0;\n y 260.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_triage id \"069a3fb3-077c-59d8-91da-27b0665143c7\" {\n diagram @sa_capability_view;\n element @sa_triage;\n position {\n x 800.0;\n y 260.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "views/diagram_sa_service_view.arcadia": "diagram sa_service_view \"3 · SA service conversation only\" id \"50af4c9b-93ce-5ff5-a1f8-7a81eb97e779\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Allocation;\n view_options {\n exchange_labels \"NameAndItems\";\n participant_categories {\n Any [@sa_contact_category];\n };\n work_categories {\n Any [];\n };\n };\n}\n\nnode sa_service_view_sa_assess id \"439f1e45-e5ed-567c-978b-4c93ef267db1\" {\n diagram @sa_service_view;\n element @sa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_confirm id \"6f138672-149b-5f88-ab07-7fc413a42262\" {\n diagram @sa_service_view;\n element @sa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_control id \"f53d4352-b042-56a6-8b3e-c51cd27254f9\" {\n diagram @sa_service_view;\n element @sa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_repair id \"ae36489d-6ec8-5f1c-b603-8b497227efba\" {\n diagram @sa_service_view;\n element @sa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_reset id \"d52da4e6-40b7-5dbc-84fb-80c443711c69\" {\n diagram @sa_service_view;\n element @sa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_technician id \"40210589-69f7-5209-b329-10bb83cf615c\" {\n diagram @sa_service_view;\n element @sa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "views/diagram_sa_state_view.arcadia": "diagram sa_state_view \"5 · SA pressure supervision\" id \"30d5baf9-6581-5cb6-846a-bcaa1e6cce63\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection {\n StateMachine {\n machine @sa_monitor;\n };\n };\n}\n\nnode sa_state_view_sa_monitor id \"a676fbb9-0833-59a8-98cf-a10d8f4b7434\" {\n diagram @sa_state_view;\n element @sa_monitor;\n position {\n x 30.0;\n y 30.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitor_initial id \"5e2326a0-0f6c-5f8d-8a21-fdded18a9281\" {\n diagram @sa_state_view;\n element @sa_monitor_initial;\n position {\n x 100.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitor_region id \"55a74f91-2025-5001-8db8-9566b1dbe783\" {\n diagram @sa_state_view;\n element @sa_monitor_region;\n position {\n x 70.0;\n y 95.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitoring id \"b3af7b04-5a45-5b82-ab69-7eada4b876f0\" {\n diagram @sa_state_view;\n element @sa_monitoring;\n position {\n x 220.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_waiting id \"57acbb71-ca86-57fc-ae90-42dad195f0e0\" {\n diagram @sa_state_view;\n element @sa_waiting;\n position {\n x 650.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n", "oa/activities/activity_oa_restore_work.arcadia": "oa_activity oa_restore_work \"Restore safe pressure\" id \"1b91f8a7-0bdb-514e-b1cd-955658e09927\" {\n}\n\noa_activity oa_assess \"Assess pressure alarm QA LEFT XYRIGHT\" id \"61f7bbfb-74a4-5540-9182-2583dfb27a49\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_confirm \"Confirm safe pressure\" id \"727c0b5c-8db6-5eb7-83d6-735519c5949f\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_repair \"Repair valve in the field\" id \"a21465af-05f3-5fb5-8983-de26932422fb\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_reset \"Reset valve remotely\" id \"d0c8be87-d238-503a-a549-7558a210507f\" {\n parent @oa_restore_work;\n}\n\ncapability_involvement oa_assessment_support \"Capability involvement: Assess an alarm\" id \"ffdbfcd0-d423-5707-a880-0dfbe1400f72\" {\n source @oa_assess;\n target @oa_triage;\n}\n\ninteraction oa_repair_request \"Request field repair\" id \"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d\" {\n items [@oa_repair_operation];\n source @oa_assess;\n target @oa_repair;\n}\n\ninteraction oa_repair_report \"Report repair result\" id \"b436d0b3-c824-5a96-af6b-2c269816d1cc\" {\n items [@oa_repair_operation];\n source @oa_repair;\n target @oa_confirm;\n}\n\n", "oa/behavior/process_oa_assessment_procedure.arcadia": "oa_process oa_assessment_procedure \"Assess an alarm procedure\" id \"022d3cfa-bbaf-5e13-924a-8e55099b8745\" {\n steps [@oa_assessment_action];\n}\n\noa_occurrence oa_assessment_action \"Assess pressure alarm\" id \"942975b8-0bef-5ae8-9fcb-c37497833fb0\" {\n body {\n Action {\n action @oa_assess;\n };\n };\n parent @oa_assessment_procedure;\n}\n\nchain_involvement oa_assessment_delivery \"Chain involvement: Assess an alarm\" id \"628cb4fc-fe63-5f6b-b364-6268f26b5740\" {\n source @oa_assessment_procedure;\n target @oa_triage;\n}\n\n", "oa/behavior/process_oa_field_procedure.arcadia": "oa_process oa_field_procedure \"Field repair procedure\" id \"5d3af417-244c-54bb-9588-16daedda4e1f\" {\n steps [@oa_request_step, @oa_repair_step, @oa_report_step];\n}\n\noa_occurrence oa_repair_step \"Repair the valve\" id \"c59432fe-6092-5ee0-908d-9dbf39476471\" {\n body {\n Action {\n action @oa_repair;\n };\n };\n parent @oa_field_procedure;\n}\n\noa_occurrence oa_report_step \"Report the measured result\" id \"df2fd3f8-6bc2-5380-a13f-36643ed35ac7\" {\n body {\n Exchange {\n exchange @oa_repair_report;\n };\n };\n parent @oa_field_procedure;\n}\n\noa_occurrence oa_request_step \"Request the field repair\" id \"5ba8079c-2dbe-5e98-ae82-2b60c6020a02\" {\n body {\n Exchange {\n exchange @oa_repair_request;\n };\n };\n parent @oa_field_procedure;\n}\n\nsequence_link oa_repair_then_report \"Sequence link: Report the measured result\" id \"c8196d35-2168-5fef-8b03-ba0d139bc00f\" {\n source @oa_repair_step;\n target @oa_report_step;\n}\n\nsequence_link oa_request_then_repair \"Sequence link: Repair the valve\" id \"3f54d890-4ca5-5e36-873b-abb5c92d578c\" {\n source @oa_request_step;\n target @oa_repair_step;\n}\n\n", "oa/behavior/process_oa_response.arcadia": "oa_process oa_response \"Handle a pressure alarm\" id \"58bae2b0-f560-50f2-818d-19091d22d18a\" {\n steps [@oa_assess_step, @oa_decision, @oa_reset_step, @oa_use_field, @oa_merge, @oa_confirm_step];\n}\n\noa_occurrence oa_assess_step \"Assess the alarm\" id \"0b07b9ed-492d-57f6-b0b1-ce8a709238a7\" {\n body {\n SequenceReference {\n sequence @oa_assessment_procedure;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_confirm_step \"Confirm safe pressure\" id \"e00594a3-6122-5a6b-b3c2-ecb5506c741d\" {\n body {\n Action {\n action @oa_confirm;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_decision \"Can a remote reset safely recover pressure?\" id \"b280c6ca-e5f9-5424-a5c1-5676e01c2371\" {\n body {\n Control {\n kind Choice;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_merge \"Recovery path completed\" id \"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d\" {\n body {\n Control {\n kind Merge;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_reset_step \"Try the authorized remote reset\" id \"d2026fc2-74a8-5e22-9942-ff3eb68a3677\" {\n body {\n Action {\n action @oa_reset;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_use_field \"Use the field repair procedure\" id \"fc6763bf-a534-54bf-afcd-57ab285ff07d\" {\n body {\n SequenceReference {\n sequence @oa_field_procedure;\n };\n };\n parent @oa_response;\n}\n\nsequence_link oa_assess_then_decide \"Continue\" id \"109e2d6b-7e86-5934-93a5-fab56eced84e\" {\n source @oa_assess_step;\n target @oa_decision;\n}\n\nsequence_link oa_field_path \"else\" id \"c1adbbd0-a762-5ee3-8b9a-5c18af377771\" {\n guard \"else\";\n source @oa_decision;\n target @oa_use_field;\n}\n\nsequence_link oa_remote_path \"remote reset is authorized\" id \"76218d89-68fd-531d-b35b-90c5b769a5ef\" {\n guard \"remote reset is authorized\";\n source @oa_decision;\n target @oa_reset_step;\n}\n\nsequence_link oa_confirm_path \"Continue\" id \"229ee94f-d147-50f6-9769-b5bd0c03a084\" {\n source @oa_merge;\n target @oa_confirm_step;\n}\n\nsequence_link oa_remote_merge \"Continue\" id \"bac43d3b-910b-5bdc-be9b-f78cf973e1ed\" {\n source @oa_reset_step;\n target @oa_merge;\n}\n\nchain_involvement oa_response_delivery \"Chain involvement: Restore a safe supply\" id \"c7c248f8-28b8-55be-9023-0991d44021e3\" {\n source @oa_response;\n target @oa_restore;\n}\n\nsequence_link oa_field_merge \"Continue\" id \"c8593670-8906-530f-b6a2-3ada77a9c219\" {\n source @oa_use_field;\n target @oa_merge;\n}\n\n", "oa/behavior/scenario_oa_conversation.arcadia": "oa_scenario oa_conversation \"Repair request and measured reply\" id \"20472233-5ce6-5ffe-b4ad-0bdbccf3e423\" {\n context @oa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@oa_call, @oa_reply];\n viewpoint ParticipantInteraction;\n}\n\noa_occurrence oa_call \"Request valve repair\" id \"b97437c6-cd7a-5a05-b537-b30a17dd936a\" {\n body {\n Exchange {\n exchange @oa_contact;\n message_kind Call;\n receiver @oa_responder;\n sender @oa_caller;\n values [{\n expression \"420.0\";\n field @oa_pressure_parameter;\n }];\n };\n };\n parent @oa_conversation;\n}\n\noa_lifeline oa_caller \"Controller\" id \"41859a65-ded2-547b-ab03-14e2fa740cf9\" {\n parent @oa_conversation;\n represented @oa_control;\n}\n\noa_occurrence oa_reply \"Return pressure after repair\" id \"cc2d497a-fd15-5455-9ee5-e70eb95811d8\" {\n body {\n Exchange {\n exchange @oa_contact;\n message_kind Reply;\n receiver @oa_caller;\n reply_to @oa_call;\n sender @oa_responder;\n values [{\n expression \"320.0\";\n field @oa_pressure_parameter;\n }];\n };\n };\n parent @oa_conversation;\n}\n\noa_lifeline oa_responder \"Technician\" id \"fc81c5f0-0442-5b88-992b-e5b10f351c59\" {\n parent @oa_conversation;\n represented @oa_technician;\n}\n\n", "oa/behavior/scenario_oa_full_scenario.arcadia": "oa_scenario oa_full_scenario \"Restore supply through field repair\" id \"d6f881a4-95da-54e9-ad97-1b8965532629\" {\n context @oa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@oa_use_conversation];\n viewpoint ParticipantInteraction;\n}\n\noa_lifeline oa_outer_controller \"Controller\" id \"2011b3ac-614b-5a47-8891-7ff81965f425\" {\n parent @oa_full_scenario;\n represented @oa_control;\n}\n\noa_lifeline oa_outer_technician \"Technician\" id \"fffff882-78fd-5415-928d-c1ef7fac6576\" {\n parent @oa_full_scenario;\n represented @oa_technician;\n}\n\noa_occurrence oa_use_conversation \"Use the reviewed repair conversation\" id \"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5\" {\n body {\n ScenarioUse {\n bindings [{\n local @oa_outer_controller;\n referenced @oa_caller;\n }, {\n local @oa_outer_technician;\n referenced @oa_responder;\n }];\n scenario @oa_conversation;\n };\n };\n parent @oa_full_scenario;\n}\n\n", "oa/behavior/state_machine_oa_monitor.arcadia": "oa_state_machine oa_monitor \"Pressure supervision\" id \"1970608f-85d1-5234-ac86-5e2b0df27dc3\" {\n parent @oa_control;\n}\n\noa_region oa_monitor_region \"Supervision cycle\" id \"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7\" {\n parent @oa_monitor;\n}\n\noa_initial oa_monitor_initial \"Start\" id \"a7ffb869-9dde-5e76-b276-c719c5c143a9\" {\n parent @oa_monitor_region;\n}\n\noa_state oa_monitoring \"Monitoring\" id \"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae\" {\n parent @oa_monitor_region;\n}\n\noa_state oa_waiting \"Awaiting repair\" id \"58c15833-6e75-523a-b57f-a88f19f6d672\" {\n parent @oa_monitor_region;\n}\n\nstate_transition oa_start_monitoring \"State transition: Monitoring\" id \"2b00270c-79a5-52a5-af96-33346bea531b\" {\n source @oa_monitor_initial;\n target @oa_monitoring;\n}\n\nstate_transition oa_alarm_transition \"State transition: Awaiting repair\" id \"fbde9d5e-c7e9-55db-a2be-497345c491b3\" {\n source @oa_monitoring;\n target @oa_waiting;\n triggers [@oa_high_pressure];\n}\n\nstate_action oa_assess_on_entry \"Assess when repair is needed\" id \"7fa37e63-db65-5aa7-88f2-31ff4347a787\" {\n phase Entry;\n source @oa_waiting;\n target @oa_assess;\n}\n\nstate_transition oa_normal_transition \"State transition: Monitoring\" id \"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97\" {\n guard \"repair confirmed and pressure is safe\";\n source @oa_waiting;\n target @oa_monitoring;\n}\n\n", "sa/behavior/process_sa_assessment_procedure.arcadia": "sa_functional_chain sa_assessment_procedure \"Assess an alarm procedure\" id \"acd5a018-f559-5298-a40d-1cf6e1353e74\" {\n steps [@sa_assessment_action];\n}\n\nsa_occurrence sa_assessment_action \"Assess pressure alarm\" id \"bae5b192-5b8e-51c6-82ae-2331af0d33bf\" {\n body {\n Action {\n action @sa_assess;\n };\n };\n parent @sa_assessment_procedure;\n}\n\nchain_involvement sa_assessment_delivery \"Chain involvement: Assess an alarm\" id \"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57\" {\n source @sa_assessment_procedure;\n target @sa_triage;\n}\n\n", "sa/behavior/process_sa_field_procedure.arcadia": "sa_functional_chain sa_field_procedure \"Field repair procedure\" id \"93eb6479-54e9-59cb-ac7b-16912347bfc0\" {\n steps [@sa_request_step, @sa_repair_step, @sa_report_step];\n}\n\nsa_occurrence sa_repair_step \"Repair the valve\" id \"0f195fea-3493-5ebd-966d-da9eddeb05d7\" {\n body {\n Action {\n action @sa_repair;\n };\n };\n parent @sa_field_procedure;\n}\n\nsa_occurrence sa_report_step \"Report the measured result\" id \"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac\" {\n body {\n Exchange {\n exchange @sa_repair_report;\n };\n };\n parent @sa_field_procedure;\n}\n\nsa_occurrence sa_request_step \"Request the field repair\" id \"40d94322-baa2-5c81-b261-ff47cdc33782\" {\n body {\n Exchange {\n exchange @sa_repair_request;\n };\n };\n parent @sa_field_procedure;\n}\n\nsequence_link sa_repair_then_report \"Sequence link: Report the measured result\" id \"7fb30b1d-195c-5f0e-a19c-a536f519a899\" {\n source @sa_repair_step;\n target @sa_report_step;\n}\n\nsequence_link sa_request_then_repair \"Sequence link: Repair the valve\" id \"6a6d968f-26d6-5dbb-b721-5a27d362779a\" {\n source @sa_request_step;\n target @sa_repair_step;\n}\n\n", "sa/behavior/process_sa_response.arcadia": "sa_functional_chain sa_response \"Handle a pressure alarm\" id \"5139ce73-56fd-5875-ba3a-e569fc890231\" {\n steps [@sa_assess_step, @sa_decision, @sa_reset_step, @sa_use_field, @sa_merge, @sa_confirm_step];\n}\n\nsa_occurrence sa_assess_step \"Assess the alarm\" id \"9024243c-ccc1-5edb-8477-2aa16e5e9a50\" {\n body {\n SequenceReference {\n sequence @sa_assessment_procedure;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_confirm_step \"Confirm safe pressure\" id \"47bec4f9-d6d0-5ed1-adca-fa0d960dc416\" {\n body {\n Action {\n action @sa_confirm;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_decision \"Can a remote reset safely recover pressure?\" id \"30c8fad9-a49b-5692-9542-3148e76afd7b\" {\n body {\n Control {\n kind Choice;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_merge \"Recovery path completed\" id \"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07\" {\n body {\n Control {\n kind Merge;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_reset_step \"Try the authorized remote reset\" id \"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6\" {\n body {\n Action {\n action @sa_reset;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_use_field \"Use the field repair procedure\" id \"d5e61c5d-510b-5091-a878-da46f3a9e152\" {\n body {\n SequenceReference {\n sequence @sa_field_procedure;\n };\n };\n parent @sa_response;\n}\n\nsequence_link sa_assess_then_decide \"Continue\" id \"9d4a131f-36ad-5125-b21f-c3dd033b8c82\" {\n source @sa_assess_step;\n target @sa_decision;\n}\n\nsequence_link sa_field_path \"else\" id \"1bbd5957-1173-51d8-97e3-ba4f084227ae\" {\n guard \"else\";\n source @sa_decision;\n target @sa_use_field;\n}\n\nsequence_link sa_remote_path \"remote reset is authorized\" id \"d8b6710a-e713-5979-934f-e5ca7d155bb4\" {\n guard \"remote reset is authorized\";\n source @sa_decision;\n target @sa_reset_step;\n}\n\nsequence_link sa_confirm_path \"Continue\" id \"1e738f27-a3a1-526d-b330-6384088b9689\" {\n source @sa_merge;\n target @sa_confirm_step;\n}\n\nsequence_link sa_remote_merge \"Continue\" id \"e5279265-8eac-52e8-98dc-571b20475e1f\" {\n source @sa_reset_step;\n target @sa_merge;\n}\n\nchain_involvement sa_response_delivery \"Chain involvement: Restore a safe supply\" id \"66efc484-53c7-51a3-89e9-422429344b38\" {\n source @sa_response;\n target @sa_restore;\n}\n\nsequence_link sa_field_merge \"Continue\" id \"0f6ac3fb-4ad6-581e-ad14-336472072d5e\" {\n source @sa_use_field;\n target @sa_merge;\n}\n\n", "sa/behavior/scenario_sa_conversation.arcadia": "sa_scenario sa_conversation \"Repair request and measured reply\" id \"730b27ca-b039-5a3b-8dc6-03418f9061b3\" {\n context @sa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@sa_call, @sa_reply];\n viewpoint BoundaryInterface;\n}\n\nsa_occurrence sa_call \"Request valve repair\" id \"8bab4783-a098-5984-9e36-493957caf26c\" {\n body {\n Exchange {\n exchange @sa_contact;\n message_kind Call;\n receiver @sa_responder;\n sender @sa_caller;\n values [{\n expression \"420.0\";\n field @sa_pressure_parameter;\n }];\n };\n };\n parent @sa_conversation;\n}\n\nsa_lifeline sa_caller \"Controller\" id \"98c61788-2fee-51f4-8cf9-de48e8c70e9e\" {\n parent @sa_conversation;\n represented @sa_control;\n}\n\nsa_occurrence sa_reply \"Return pressure after repair\" id \"4e1c0a56-ce80-5f13-a93a-6956de54880c\" {\n body {\n Exchange {\n exchange @sa_contact;\n message_kind Reply;\n receiver @sa_caller;\n reply_to @sa_call;\n sender @sa_responder;\n values [{\n expression \"320.0\";\n field @sa_pressure_parameter;\n }];\n };\n };\n parent @sa_conversation;\n}\n\nsa_lifeline sa_responder \"Technician\" id \"6249b54a-e396-5338-82b9-89266c55670d\" {\n parent @sa_conversation;\n represented @sa_technician;\n}\n\nartifact repair_test_evidence \"Repair conversation acceptance notes\" id \"f5922bf7-05d8-590f-86e9-1d09f37f4fa6\" {\n description \"A local teaching artifact, not proof of a real valve's safety.\";\n fragment \"acceptance\";\n owner @sa_conversation;\n relation Verifies;\n revision \"lesson-1\";\n uri \"evidence/repair-check.md\";\n}\n\n", "sa/behavior/scenario_sa_full_scenario.arcadia": "sa_scenario sa_full_scenario \"Restore supply through field repair\" id \"f746a1cd-ff9f-55c0-b325-01c03d2f4fae\" {\n context @sa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@sa_use_conversation];\n viewpoint BoundaryInterface;\n}\n\nsa_lifeline sa_outer_controller \"Controller\" id \"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023\" {\n parent @sa_full_scenario;\n represented @sa_control;\n}\n\nsa_lifeline sa_outer_technician \"Technician\" id \"155e4fe4-9e3b-5f4e-b886-28abcc3f086b\" {\n parent @sa_full_scenario;\n represented @sa_technician;\n}\n\nsa_occurrence sa_use_conversation \"Use the reviewed repair conversation\" id \"1c9da843-e2d3-5591-8e3f-db083a42867e\" {\n body {\n ScenarioUse {\n bindings [{\n local @sa_outer_controller;\n referenced @sa_caller;\n }, {\n local @sa_outer_technician;\n referenced @sa_responder;\n }];\n scenario @sa_conversation;\n };\n };\n parent @sa_full_scenario;\n}\n\n", "sa/behavior/state_machine_sa_monitor.arcadia": "sa_state_machine sa_monitor \"Pressure supervision\" id \"132b3f28-3f88-5327-9868-8c8b645ed412\" {\n parent @sa_control;\n}\n\nsa_region sa_monitor_region \"Supervision cycle\" id \"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c\" {\n parent @sa_monitor;\n}\n\nsa_initial sa_monitor_initial \"Start\" id \"57eb5348-14d8-560e-996a-8dbf993243e2\" {\n parent @sa_monitor_region;\n}\n\nsa_state sa_monitoring \"Monitoring\" id \"8af21f9b-c21e-5aae-af0d-0958840f6655\" {\n parent @sa_monitor_region;\n}\n\nsa_state sa_waiting \"Awaiting repair\" id \"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37\" {\n parent @sa_monitor_region;\n}\n\nstate_transition sa_start_monitoring \"State transition: Monitoring\" id \"47730532-0372-5cc5-9d6d-0b8953aebdd8\" {\n source @sa_monitor_initial;\n target @sa_monitoring;\n}\n\nstate_transition sa_alarm_transition \"State transition: Awaiting repair\" id \"13c3bfa4-9254-5ab2-b96f-f65f402adf81\" {\n source @sa_monitoring;\n target @sa_waiting;\n triggers [@sa_high_pressure];\n}\n\nstate_action sa_assess_on_entry \"Assess when repair is needed\" id \"a887f96a-37cb-5891-8070-011fa276e5b5\" {\n phase Entry;\n source @sa_waiting;\n target @sa_assess;\n}\n\nstate_transition sa_normal_transition \"State transition: Monitoring\" id \"6e2c1b47-764c-577a-b325-ff66dd2a2768\" {\n guard \"repair confirmed and pressure is safe\";\n source @sa_waiting;\n target @sa_monitoring;\n}\n\n", "sa/functions/function_sa_audit_thresholds.arcadia": "sa_function sa_audit_thresholds \"Audit pressure thresholds\" id \"4149a872-3440-59de-9879-8981e78d27ab\" {\n description \"Deliberately unfinished: assigned to the service, but no behavior context yet. Model checks should expose this one work_without_behavior_context warning.\";\n}\n\n", "sa/functions/function_sa_restore_work.arcadia": "sa_function sa_restore_work \"Restore safe pressure\" id \"58867e7d-916e-5ebc-9e4c-8dbed1314be3\" {\n}\n\nsa_function sa_assess \"Assess pressure alarm\" id \"dddae020-a444-5d48-acc8-139d2696a672\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_request_out \"Request field repair output\" id \"24a6850e-b819-57e0-af88-ca4ab76581b7\" {\n contract {\n FunctionOutput {\n outgoing_items [@sa_repair_operation];\n };\n };\n parent @sa_assess;\n}\n\nsa_function sa_confirm \"Confirm safe pressure\" id \"d75eb3fa-a27d-52d5-8782-8b342b3865f6\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_report_in \"Report repair result input\" id \"391af7c4-b07d-53a7-8ddd-5c81461fc4f8\" {\n contract {\n FunctionInput {\n incoming_items [@sa_repair_operation];\n };\n };\n parent @sa_confirm;\n}\n\nsa_function sa_repair \"Repair valve in the field\" id \"9497e10f-04c4-5586-8738-2464a6f00bd4\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_report_out \"Report repair result output\" id \"994faed7-dbc8-5b96-9d62-7604ac0fbc3a\" {\n contract {\n FunctionOutput {\n outgoing_items [@sa_repair_operation];\n };\n };\n parent @sa_repair;\n}\n\nsa_port sa_repair_request_in \"Request field repair input\" id \"d2113fb0-a531-54ef-9484-13951b00ab8f\" {\n contract {\n FunctionInput {\n incoming_items [@sa_repair_operation];\n };\n };\n parent @sa_repair;\n}\n\nsa_function sa_reset \"Reset valve remotely\" id \"09342ccb-044b-5483-ac58-87dc3cf7831c\" {\n parent @sa_restore_work;\n}\n\ncapability_involvement sa_assessment_support \"Capability involvement: Assess an alarm\" id \"93eaad8d-83b7-5980-b9bb-86c9e3f31da4\" {\n source @sa_assess;\n target @sa_triage;\n}\n\nfunctional_exchange sa_repair_request \"Request field repair\" id \"93474111-f23e-56c1-b61b-b7c2396b91bd\" {\n items [@sa_repair_operation];\n source @sa_assess;\n source_port @sa_repair_request_out;\n target @sa_repair;\n target_port @sa_repair_request_in;\n}\n\nfunctional_exchange sa_repair_report \"Report repair result\" id \"684eadc3-e670-5779-a60f-bbc9a5bfb062\" {\n items [@sa_repair_operation];\n source @sa_repair;\n source_port @sa_repair_report_out;\n target @sa_confirm;\n target_port @sa_repair_report_in;\n}\n\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/04.response.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/04.response.json new file mode 100644 index 00000000..be53ed8c --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/04.response.json @@ -0,0 +1 @@ +{"elements":94,"migration":null,"model_id":"2786d72f-5763-5f33-a57f-2773a4ca1a6c","name":"Restore safe water pressure — release 1 walkthrough","relations":62,"resource_id":"0f2b9beb-fe51-4996-9367-568d77191729","revision":1,"schema_version":7} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/05.request.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/05.request.json new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/05.response.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/05.response.json new file mode 100644 index 00000000..183eb9c3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/05.response.json @@ -0,0 +1 @@ +{"resource_id":"0f2b9beb-fe51-4996-9367-568d77191729","revision":1,"model":{"schema_version":7,"id":"2786d72f-5763-5f33-a57f-2773a4ca1a6c","alias":"pressure_restoration","name":"Restore safe water pressure — release 1 walkthrough","description":"A controller either resets a valve remotely or requests field repair. Compare the operational need with the explicitly chosen coordination-service boundary. Start with README.md beside project.arcadia. Units and guards are descriptive; this model does not simulate a real water network.","elements":{"01490fa8-2f01-5ac8-9722-d55d45414379":{"id":"01490fa8-2f01-5ac8-9722-d55d45414379","alias":"sa_high_pressure","name":"Pressure alarm detected","description":"","parent":null,"body":{"Sa":{"Shared":{"Event":{"body":{"Change":{"expression":"measured_pressure > operating_limit"}}}}}}},"022d3cfa-bbaf-5e13-924a-8e55099b8745":{"id":"022d3cfa-bbaf-5e13-924a-8e55099b8745","alias":"oa_assessment_procedure","name":"Assess an alarm procedure","description":"","parent":null,"body":{"Oa":{"Process":{"steps":["942975b8-0bef-5ae8-9fcb-c37497833fb0"]}}}},"09342ccb-044b-5483-ac58-87dc3cf7831c":{"id":"09342ccb-044b-5483-ac58-87dc3cf7831c","alias":"sa_reset","name":"Reset valve remotely","description":"","parent":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","body":{"Sa":"Function"}},"0b07b9ed-492d-57f6-b0b1-ce8a709238a7":{"id":"0b07b9ed-492d-57f6-b0b1-ce8a709238a7","alias":"oa_assess_step","name":"Assess the alarm","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"SequenceReference":{"sequence":"022d3cfa-bbaf-5e13-924a-8e55099b8745"}},"precondition":"","postcondition":""}}}}},"0f195fea-3493-5ebd-966d-da9eddeb05d7":{"id":"0f195fea-3493-5ebd-966d-da9eddeb05d7","alias":"sa_repair_step","name":"Repair the valve","description":"","parent":"93eb6479-54e9-59cb-ac7b-16912347bfc0","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"9497e10f-04c4-5586-8738-2464a6f00bd4","lifeline":null}},"precondition":"","postcondition":""}}}}},"132b3f28-3f88-5327-9868-8c8b645ed412":{"id":"132b3f28-3f88-5327-9868-8c8b645ed412","alias":"sa_monitor","name":"Pressure supervision","description":"","parent":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","body":{"Sa":{"Shared":"StateMachine"}}},"155e4fe4-9e3b-5f4e-b886-28abcc3f086b":{"id":"155e4fe4-9e3b-5f4e-b886-28abcc3f086b","alias":"sa_outer_technician","name":"Technician","description":"","parent":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","body":{"Sa":{"Shared":{"Lifeline":{"represented":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a"}}}}},"1970608f-85d1-5234-ac86-5e2b0df27dc3":{"id":"1970608f-85d1-5234-ac86-5e2b0df27dc3","alias":"oa_monitor","name":"Pressure supervision","description":"","parent":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","body":{"Oa":{"Shared":"StateMachine"}}},"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771":{"id":"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771","alias":"oa_contact_category","name":"Field contact","description":"","parent":null,"body":{"Oa":{"Shared":{"ExchangeCategory":{"family":"Participant","exchanges":["27b47887-baf0-518b-bf87-f5acbf7d0b93"]}}}}},"1b91f8a7-0bdb-514e-b1cd-955658e09927":{"id":"1b91f8a7-0bdb-514e-b1cd-955658e09927","alias":"oa_restore_work","name":"Restore safe pressure","description":"","parent":null,"body":{"Oa":"Activity"}},"1c9da843-e2d3-5591-8e3f-db083a42867e":{"id":"1c9da843-e2d3-5591-8e3f-db083a42867e","alias":"sa_use_conversation","name":"Use the reviewed repair conversation","description":"","parent":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","body":{"Sa":{"Shared":{"Occurrence":{"body":{"ScenarioUse":{"scenario":"730b27ca-b039-5a3b-8dc6-03418f9061b3","bindings":[{"referenced":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","local":"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023"},{"referenced":"6249b54a-e396-5338-82b9-89266c55670d","local":"155e4fe4-9e3b-5f4e-b886-28abcc3f086b"}]}},"precondition":"","postcondition":""}}}}},"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023":{"id":"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023","alias":"sa_outer_controller","name":"Controller","description":"","parent":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","body":{"Sa":{"Shared":{"Lifeline":{"represented":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0"}}}}},"2011b3ac-614b-5a47-8891-7ff81965f425":{"id":"2011b3ac-614b-5a47-8891-7ff81965f425","alias":"oa_outer_controller","name":"Controller","description":"","parent":"d6f881a4-95da-54e9-ad97-1b8965532629","body":{"Oa":{"Shared":{"Lifeline":{"represented":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22"}}}}},"20472233-5ce6-5ffe-b4ad-0bdbccf3e423":{"id":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","alias":"oa_conversation","name":"Repair request and measured reply","description":"","parent":null,"body":{"Oa":{"Shared":{"Scenario":{"viewpoint":"ParticipantInteraction","context":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","precondition":"A pressure alarm has been assessed","postcondition":"The controller has received the measured pressure after repair","steps":["b97437c6-cd7a-5a05-b537-b30a17dd936a","cc2d497a-fd15-5455-9ee5-e70eb95811d8"]}}}}},"24a6850e-b819-57e0-af88-ca4ab76581b7":{"id":"24a6850e-b819-57e0-af88-ca4ab76581b7","alias":"sa_repair_request_out","name":"Request field repair output","description":"","parent":"dddae020-a444-5d48-acc8-139d2696a672","body":{"Sa":{"Shared":{"Port":{"contract":{"FunctionOutput":{"outgoing_items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}},"legacy":null}}}}},"30c8fad9-a49b-5692-9542-3148e76afd7b":{"id":"30c8fad9-a49b-5692-9542-3148e76afd7b","alias":"sa_decision","name":"Can a remote reset safely recover pressure?","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Control":{"kind":"Choice"}},"precondition":"","postcondition":""}}}}},"32aa9940-df6e-5a12-b9bd-6337e2d2ed22":{"id":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","alias":"oa_control","name":"Control room","description":"","parent":null,"body":{"Oa":"Entity"}},"391af7c4-b07d-53a7-8ddd-5c81461fc4f8":{"id":"391af7c4-b07d-53a7-8ddd-5c81461fc4f8","alias":"sa_repair_report_in","name":"Report repair result input","description":"","parent":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","body":{"Sa":{"Shared":{"Port":{"contract":{"FunctionInput":{"incoming_items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}},"legacy":null}}}}},"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c":{"id":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","alias":"sa_monitor_region","name":"Supervision cycle","description":"","parent":"132b3f28-3f88-5327-9868-8c8b645ed412","body":{"Sa":{"Shared":"Region"}}},"3dfee23a-148b-5cec-ad2d-b774e84ea5bb":{"id":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","alias":"oa_restore","name":"Restore a safe supply","description":"","parent":null,"body":{"Oa":"Capability"}},"40d94322-baa2-5c81-b261-ff47cdc33782":{"id":"40d94322-baa2-5c81-b261-ff47cdc33782","alias":"sa_request_step","name":"Request the field repair","description":"","parent":"93eb6479-54e9-59cb-ac7b-16912347bfc0","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"93474111-f23e-56c1-b61b-b7c2396b91bd","sender":null,"receiver":null,"message_kind":"Asynchronous","reply_to":null,"values":[]}},"precondition":"","postcondition":""}}}}},"4149a872-3440-59de-9879-8981e78d27ab":{"id":"4149a872-3440-59de-9879-8981e78d27ab","alias":"sa_audit_thresholds","name":"Audit pressure thresholds","description":"Deliberately unfinished: assigned to the service, but no behavior context yet. Model checks should expose this one work_without_behavior_context warning.","parent":null,"body":{"Sa":"Function"}},"41859a65-ded2-547b-ab03-14e2fa740cf9":{"id":"41859a65-ded2-547b-ab03-14e2fa740cf9","alias":"oa_caller","name":"Controller","description":"","parent":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","body":{"Oa":{"Shared":{"Lifeline":{"represented":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22"}}}}},"435bf87c-73fd-5e4d-978a-4c471bc9eaf0":{"id":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","alias":"sa_control","name":"Pressure coordination service","description":"","parent":null,"body":{"Sa":"System"}},"47bec4f9-d6d0-5ed1-adca-fa0d960dc416":{"id":"47bec4f9-d6d0-5ed1-adca-fa0d960dc416","alias":"sa_confirm_step","name":"Confirm safe pressure","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","lifeline":null}},"precondition":"","postcondition":""}}}}},"4e1c0a56-ce80-5f13-a93a-6956de54880c":{"id":"4e1c0a56-ce80-5f13-a93a-6956de54880c","alias":"sa_reply","name":"Return pressure after repair","description":"","parent":"730b27ca-b039-5a3b-8dc6-03418f9061b3","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"63009b5f-539e-5914-b630-ec6b7fefb4d5","sender":"6249b54a-e396-5338-82b9-89266c55670d","receiver":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","message_kind":"Reply","reply_to":"8bab4783-a098-5984-9e36-493957caf26c","values":[{"path":[],"field":"bb12ba5d-aab5-5a1b-99de-c767f5365b57","expression":"320.0"}]}},"precondition":"","postcondition":""}}}}},"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07":{"id":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","alias":"sa_merge","name":"Recovery path completed","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Control":{"kind":"Merge"}},"precondition":"","postcondition":""}}}}},"5139ce73-56fd-5875-ba3a-e569fc890231":{"id":"5139ce73-56fd-5875-ba3a-e569fc890231","alias":"sa_response","name":"Handle a pressure alarm","description":"","parent":null,"body":{"Sa":{"FunctionalChain":{"steps":["9024243c-ccc1-5edb-8477-2aa16e5e9a50","30c8fad9-a49b-5692-9542-3148e76afd7b","bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","d5e61c5d-510b-5091-a878-da46f3a9e152","4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","47bec4f9-d6d0-5ed1-adca-fa0d960dc416"]}}}},"57eb5348-14d8-560e-996a-8dbf993243e2":{"id":"57eb5348-14d8-560e-996a-8dbf993243e2","alias":"sa_monitor_initial","name":"Start","description":"","parent":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","body":{"Sa":{"Shared":{"State":{"kind":"Initial","entry":"","exit":"","do_activity":""}}}}},"58867e7d-916e-5ebc-9e4c-8dbed1314be3":{"id":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","alias":"sa_restore_work","name":"Restore safe pressure","description":"","parent":null,"body":{"Sa":"Function"}},"58bae2b0-f560-50f2-818d-19091d22d18a":{"id":"58bae2b0-f560-50f2-818d-19091d22d18a","alias":"oa_response","name":"Handle a pressure alarm","description":"","parent":null,"body":{"Oa":{"Process":{"steps":["0b07b9ed-492d-57f6-b0b1-ce8a709238a7","b280c6ca-e5f9-5424-a5c1-5676e01c2371","d2026fc2-74a8-5e22-9942-ff3eb68a3677","fc6763bf-a534-54bf-afcd-57ab285ff07d","6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","e00594a3-6122-5a6b-b3c2-ecb5506c741d"]}}}},"58c15833-6e75-523a-b57f-a88f19f6d672":{"id":"58c15833-6e75-523a-b57f-a88f19f6d672","alias":"oa_waiting","name":"Awaiting repair","description":"","parent":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","body":{"Oa":{"Shared":{"State":{"kind":"State","entry":"","exit":"","do_activity":""}}}}},"5ad034b1-084d-5273-9e70-971671766132":{"id":"5ad034b1-084d-5273-9e70-971671766132","alias":"sa_mission","name":"Maintain safe water supply","description":"","parent":null,"body":{"Sa":"Mission"}},"5ba8079c-2dbe-5e98-ae82-2b60c6020a02":{"id":"5ba8079c-2dbe-5e98-ae82-2b60c6020a02","alias":"oa_request_step","name":"Request the field repair","description":"","parent":"5d3af417-244c-54bb-9588-16daedda4e1f","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d","sender":null,"receiver":null,"message_kind":"Asynchronous","reply_to":null,"values":[]}},"precondition":"","postcondition":""}}}}},"5d3af417-244c-54bb-9588-16daedda4e1f":{"id":"5d3af417-244c-54bb-9588-16daedda4e1f","alias":"oa_field_procedure","name":"Field repair procedure","description":"","parent":null,"body":{"Oa":{"Process":{"steps":["5ba8079c-2dbe-5e98-ae82-2b60c6020a02","c59432fe-6092-5ee0-908d-9dbf39476471","df2fd3f8-6bc2-5380-a13f-36643ed35ac7"]}}}},"61f7bbfb-74a4-5540-9182-2583dfb27a49":{"id":"61f7bbfb-74a4-5540-9182-2583dfb27a49","alias":"oa_assess","name":"Assess pressure alarm QA LEFT XYRIGHT","description":"","parent":"1b91f8a7-0bdb-514e-b1cd-955658e09927","body":{"Oa":"Activity"}},"6249b54a-e396-5338-82b9-89266c55670d":{"id":"6249b54a-e396-5338-82b9-89266c55670d","alias":"sa_responder","name":"Technician","description":"","parent":"730b27ca-b039-5a3b-8dc6-03418f9061b3","body":{"Sa":{"Shared":{"Lifeline":{"represented":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a"}}}}},"65d6b8d6-271a-5c84-8b42-abbe310c955e":{"id":"65d6b8d6-271a-5c84-8b42-abbe310c955e","alias":"oa_high_pressure","name":"Pressure alarm detected","description":"","parent":null,"body":{"Oa":{"Shared":{"Event":{"body":{"Change":{"expression":"measured_pressure > operating_limit"}}}}}}},"6a30b763-cc51-546d-907f-5c63657cfd03":{"id":"6a30b763-cc51-546d-907f-5c63657cfd03","alias":"oa_triage","name":"Assess an alarm","description":"","parent":null,"body":{"Oa":"Capability"}},"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d":{"id":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","alias":"oa_merge","name":"Recovery path completed","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Control":{"kind":"Merge"}},"precondition":"","postcondition":""}}}}},"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae":{"id":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","alias":"oa_monitoring","name":"Monitoring","description":"","parent":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","body":{"Oa":{"Shared":{"State":{"kind":"State","entry":"","exit":"","do_activity":""}}}}},"727c0b5c-8db6-5eb7-83d6-735519c5949f":{"id":"727c0b5c-8db6-5eb7-83d6-735519c5949f","alias":"oa_confirm","name":"Confirm safe pressure","description":"","parent":"1b91f8a7-0bdb-514e-b1cd-955658e09927","body":{"Oa":"Activity"}},"730b27ca-b039-5a3b-8dc6-03418f9061b3":{"id":"730b27ca-b039-5a3b-8dc6-03418f9061b3","alias":"sa_conversation","name":"Repair request and measured reply","description":"","parent":null,"body":{"Sa":{"Shared":{"Scenario":{"viewpoint":"BoundaryInterface","context":"81259051-370a-512d-a3b5-6420a6f933b6","precondition":"A pressure alarm has been assessed","postcondition":"The controller has received the measured pressure after repair","steps":["8bab4783-a098-5984-9e36-493957caf26c","4e1c0a56-ce80-5f13-a93a-6956de54880c"]}}}}},"781cbe75-410f-5cc5-aeb8-a43491f77b99":{"id":"781cbe75-410f-5cc5-aeb8-a43491f77b99","alias":"sa_contact_category","name":"Field contact","description":"","parent":null,"body":{"Sa":{"Shared":{"ExchangeCategory":{"family":"Participant","exchanges":["63009b5f-539e-5914-b630-ec6b7fefb4d5"]}}}}},"81259051-370a-512d-a3b5-6420a6f933b6":{"id":"81259051-370a-512d-a3b5-6420a6f933b6","alias":"sa_restore","name":"Restore a safe supply","description":"","parent":null,"body":{"Sa":"Capability"}},"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7":{"id":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","alias":"oa_monitor_region","name":"Supervision cycle","description":"","parent":"1970608f-85d1-5234-ac86-5e2b0df27dc3","body":{"Oa":{"Shared":"Region"}}},"87d0a95b-af1b-5352-b753-e4c6533671a5":{"id":"87d0a95b-af1b-5352-b753-e4c6533671a5","alias":"sa_pressure","name":"Measured pressure","description":"","parent":null,"body":{"Sa":{"Shared":{"DataType":{"definition":{"Real":{"minimum":0.0,"maximum":600.0}},"default":null,"unit":"kPa"}}}}},"8af21f9b-c21e-5aae-af0d-0958840f6655":{"id":"8af21f9b-c21e-5aae-af0d-0958840f6655","alias":"sa_monitoring","name":"Monitoring","description":"","parent":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","body":{"Sa":{"Shared":{"State":{"kind":"State","entry":"","exit":"","do_activity":""}}}}},"8bab4783-a098-5984-9e36-493957caf26c":{"id":"8bab4783-a098-5984-9e36-493957caf26c","alias":"sa_call","name":"Request valve repair","description":"","parent":"730b27ca-b039-5a3b-8dc6-03418f9061b3","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"63009b5f-539e-5914-b630-ec6b7fefb4d5","sender":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","receiver":"6249b54a-e396-5338-82b9-89266c55670d","message_kind":"Call","reply_to":null,"values":[{"path":[],"field":"bb12ba5d-aab5-5a1b-99de-c767f5365b57","expression":"420.0"}]}},"precondition":"","postcondition":""}}}}},"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7":{"id":"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7","alias":"oa_pressure_parameter","name":"Pressure before / after repair","description":"","parent":"d736c7d6-d369-550a-8ba4-dae223e40bb3","body":{"Oa":{"Shared":{"DataField":{"type_ref":{"Named":"e7824764-5db9-5384-8198-2fbaea2b10b2"},"minimum":1,"maximum":1,"unit":"","direction":"InOut","storage":"Value","default":null}}}}},"9024243c-ccc1-5edb-8477-2aa16e5e9a50":{"id":"9024243c-ccc1-5edb-8477-2aa16e5e9a50","alias":"sa_assess_step","name":"Assess the alarm","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"SequenceReference":{"sequence":"acd5a018-f559-5298-a40d-1cf6e1353e74"}},"precondition":"","postcondition":""}}}}},"9349b353-53f2-56f8-b571-a05b09335cdf":{"id":"9349b353-53f2-56f8-b571-a05b09335cdf","alias":"oa_repair_traffic","name":"Repair work exchanges","description":"","parent":null,"body":{"Oa":{"Shared":{"ExchangeCategory":{"family":"Work","exchanges":["cf423ea2-8b2e-5a27-93d4-5e8542d9db8d","b436d0b3-c824-5a96-af6b-2c269816d1cc"]}}}}},"93eb6479-54e9-59cb-ac7b-16912347bfc0":{"id":"93eb6479-54e9-59cb-ac7b-16912347bfc0","alias":"sa_field_procedure","name":"Field repair procedure","description":"","parent":null,"body":{"Sa":{"FunctionalChain":{"steps":["40d94322-baa2-5c81-b261-ff47cdc33782","0f195fea-3493-5ebd-966d-da9eddeb05d7","ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac"]}}}},"942975b8-0bef-5ae8-9fcb-c37497833fb0":{"id":"942975b8-0bef-5ae8-9fcb-c37497833fb0","alias":"oa_assessment_action","name":"Assess pressure alarm","description":"","parent":"022d3cfa-bbaf-5e13-924a-8e55099b8745","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"61f7bbfb-74a4-5540-9182-2583dfb27a49","lifeline":null}},"precondition":"","postcondition":""}}}}},"9497e10f-04c4-5586-8738-2464a6f00bd4":{"id":"9497e10f-04c4-5586-8738-2464a6f00bd4","alias":"sa_repair","name":"Repair valve in the field","description":"","parent":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","body":{"Sa":"Function"}},"98c61788-2fee-51f4-8cf9-de48e8c70e9e":{"id":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","alias":"sa_caller","name":"Controller","description":"","parent":"730b27ca-b039-5a3b-8dc6-03418f9061b3","body":{"Sa":{"Shared":{"Lifeline":{"represented":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0"}}}}},"98d411e7-7c65-5c3f-b543-8bf0f2522ea2":{"id":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","alias":"sa_control_port","name":"Repair service client","description":"Explicitly chosen Standard component port for the repair service.","parent":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","body":{"Sa":{"Shared":{"Port":{"contract":{"Component":{"kind":"Standard","orientation":"Unset"}},"legacy":null}}}}},"994faed7-dbc8-5b96-9d62-7604ac0fbc3a":{"id":"994faed7-dbc8-5b96-9d62-7604ac0fbc3a","alias":"sa_repair_report_out","name":"Report repair result output","description":"","parent":"9497e10f-04c4-5586-8738-2464a6f00bd4","body":{"Sa":{"Shared":{"Port":{"contract":{"FunctionOutput":{"outgoing_items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}},"legacy":null}}}}},"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5":{"id":"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5","alias":"oa_use_conversation","name":"Use the reviewed repair conversation","description":"","parent":"d6f881a4-95da-54e9-ad97-1b8965532629","body":{"Oa":{"Shared":{"Occurrence":{"body":{"ScenarioUse":{"scenario":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","bindings":[{"referenced":"41859a65-ded2-547b-ab03-14e2fa740cf9","local":"2011b3ac-614b-5a47-8891-7ff81965f425"},{"referenced":"fc81c5f0-0442-5b88-992b-e5b10f351c59","local":"fffff882-78fd-5415-928d-c1ef7fac6576"}]}},"precondition":"","postcondition":""}}}}},"a21465af-05f3-5fb5-8983-de26932422fb":{"id":"a21465af-05f3-5fb5-8983-de26932422fb","alias":"oa_repair","name":"Repair valve in the field","description":"","parent":"1b91f8a7-0bdb-514e-b1cd-955658e09927","body":{"Oa":"Activity"}},"a4b8942e-a975-5f88-ad14-8f38c345baac":{"id":"a4b8942e-a975-5f88-ad14-8f38c345baac","alias":"sa_repair_interface","name":"Valve repair service","description":"","parent":null,"body":{"Sa":{"Shared":{"Interface":{"supertype":null}}}}},"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37":{"id":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","alias":"sa_waiting","name":"Awaiting repair","description":"","parent":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","body":{"Sa":{"Shared":{"State":{"kind":"State","entry":"","exit":"","do_activity":""}}}}},"a7ffb869-9dde-5e76-b276-c719c5c143a9":{"id":"a7ffb869-9dde-5e76-b276-c719c5c143a9","alias":"oa_monitor_initial","name":"Start","description":"","parent":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","body":{"Oa":{"Shared":{"State":{"kind":"Initial","entry":"","exit":"","do_activity":""}}}}},"a962fc5e-3ab0-5296-8b0d-fd84633f9218":{"id":"a962fc5e-3ab0-5296-8b0d-fd84633f9218","alias":"sa_repair_operation","name":"Valve repair","description":"","parent":null,"body":{"Sa":{"Shared":{"ExchangeItem":{"kind":"Information","mechanism":"Operation","supertype":null}}}}},"a9a47e48-100c-57a8-95f0-7fe24da94f94":{"id":"a9a47e48-100c-57a8-95f0-7fe24da94f94","alias":"sa_repair_traffic","name":"Repair work exchanges","description":"","parent":null,"body":{"Sa":{"Shared":{"ExchangeCategory":{"family":"Work","exchanges":["93474111-f23e-56c1-b61b-b7c2396b91bd","684eadc3-e670-5779-a60f-bbc9a5bfb062"]}}}}},"acd5a018-f559-5298-a40d-1cf6e1353e74":{"id":"acd5a018-f559-5298-a40d-1cf6e1353e74","alias":"sa_assessment_procedure","name":"Assess an alarm procedure","description":"","parent":null,"body":{"Sa":{"FunctionalChain":{"steps":["bae5b192-5b8e-51c6-82ae-2331af0d33bf"]}}}},"b280c6ca-e5f9-5424-a5c1-5676e01c2371":{"id":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","alias":"oa_decision","name":"Can a remote reset safely recover pressure?","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Control":{"kind":"Choice"}},"precondition":"","postcondition":""}}}}},"b97437c6-cd7a-5a05-b537-b30a17dd936a":{"id":"b97437c6-cd7a-5a05-b537-b30a17dd936a","alias":"oa_call","name":"Request valve repair","description":"","parent":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"27b47887-baf0-518b-bf87-f5acbf7d0b93","sender":"41859a65-ded2-547b-ab03-14e2fa740cf9","receiver":"fc81c5f0-0442-5b88-992b-e5b10f351c59","message_kind":"Call","reply_to":null,"values":[{"path":[],"field":"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7","expression":"420.0"}]}},"precondition":"","postcondition":""}}}}},"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f":{"id":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f","alias":"sa_triage","name":"Assess an alarm","description":"","parent":null,"body":{"Sa":"Capability"}},"bae5b192-5b8e-51c6-82ae-2331af0d33bf":{"id":"bae5b192-5b8e-51c6-82ae-2331af0d33bf","alias":"sa_assessment_action","name":"Assess pressure alarm","description":"","parent":"acd5a018-f559-5298-a40d-1cf6e1353e74","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"dddae020-a444-5d48-acc8-139d2696a672","lifeline":null}},"precondition":"","postcondition":""}}}}},"bb12ba5d-aab5-5a1b-99de-c767f5365b57":{"id":"bb12ba5d-aab5-5a1b-99de-c767f5365b57","alias":"sa_pressure_parameter","name":"Pressure before / after repair","description":"","parent":"a962fc5e-3ab0-5296-8b0d-fd84633f9218","body":{"Sa":{"Shared":{"DataField":{"type_ref":{"Named":"87d0a95b-af1b-5352-b753-e4c6533671a5"},"minimum":1,"maximum":1,"unit":"","direction":"InOut","storage":"Value","default":null}}}}},"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6":{"id":"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","alias":"sa_reset_step","name":"Try the authorized remote reset","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"09342ccb-044b-5483-ac58-87dc3cf7831c","lifeline":null}},"precondition":"","postcondition":""}}}}},"c05b9422-b9da-5de5-b21d-07ad23bd2b8a":{"id":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","alias":"sa_technician","name":"Field technician","description":"","parent":null,"body":{"Sa":"Actor"}},"c59432fe-6092-5ee0-908d-9dbf39476471":{"id":"c59432fe-6092-5ee0-908d-9dbf39476471","alias":"oa_repair_step","name":"Repair the valve","description":"","parent":"5d3af417-244c-54bb-9588-16daedda4e1f","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"a21465af-05f3-5fb5-8983-de26932422fb","lifeline":null}},"precondition":"","postcondition":""}}}}},"c9c61f50-06e0-5d17-973d-dcc57cd5cc90":{"id":"c9c61f50-06e0-5d17-973d-dcc57cd5cc90","alias":"oa_mission","name":"Maintain safe water supply","description":"","parent":null,"body":{"Oa":"Mission"}},"cc2d497a-fd15-5455-9ee5-e70eb95811d8":{"id":"cc2d497a-fd15-5455-9ee5-e70eb95811d8","alias":"oa_reply","name":"Return pressure after repair","description":"","parent":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"27b47887-baf0-518b-bf87-f5acbf7d0b93","sender":"fc81c5f0-0442-5b88-992b-e5b10f351c59","receiver":"41859a65-ded2-547b-ab03-14e2fa740cf9","message_kind":"Reply","reply_to":"b97437c6-cd7a-5a05-b537-b30a17dd936a","values":[{"path":[],"field":"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7","expression":"320.0"}]}},"precondition":"","postcondition":""}}}}},"d0c8be87-d238-503a-a549-7558a210507f":{"id":"d0c8be87-d238-503a-a549-7558a210507f","alias":"oa_reset","name":"Reset valve remotely","description":"","parent":"1b91f8a7-0bdb-514e-b1cd-955658e09927","body":{"Oa":"Activity"}},"d2026fc2-74a8-5e22-9942-ff3eb68a3677":{"id":"d2026fc2-74a8-5e22-9942-ff3eb68a3677","alias":"oa_reset_step","name":"Try the authorized remote reset","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"d0c8be87-d238-503a-a549-7558a210507f","lifeline":null}},"precondition":"","postcondition":""}}}}},"d2113fb0-a531-54ef-9484-13951b00ab8f":{"id":"d2113fb0-a531-54ef-9484-13951b00ab8f","alias":"sa_repair_request_in","name":"Request field repair input","description":"","parent":"9497e10f-04c4-5586-8738-2464a6f00bd4","body":{"Sa":{"Shared":{"Port":{"contract":{"FunctionInput":{"incoming_items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}},"legacy":null}}}}},"d5e61c5d-510b-5091-a878-da46f3a9e152":{"id":"d5e61c5d-510b-5091-a878-da46f3a9e152","alias":"sa_use_field","name":"Use the field repair procedure","description":"","parent":"5139ce73-56fd-5875-ba3a-e569fc890231","body":{"Sa":{"Shared":{"Occurrence":{"body":{"SequenceReference":{"sequence":"93eb6479-54e9-59cb-ac7b-16912347bfc0"}},"precondition":"","postcondition":""}}}}},"d6f881a4-95da-54e9-ad97-1b8965532629":{"id":"d6f881a4-95da-54e9-ad97-1b8965532629","alias":"oa_full_scenario","name":"Restore supply through field repair","description":"","parent":null,"body":{"Oa":{"Shared":{"Scenario":{"viewpoint":"ParticipantInteraction","context":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","precondition":"A pressure alarm has been assessed","postcondition":"The controller has received the measured pressure after repair","steps":["9ff94014-afa1-50ab-a4d3-8e9dd0565cc5"]}}}}},"d736c7d6-d369-550a-8ba4-dae223e40bb3":{"id":"d736c7d6-d369-550a-8ba4-dae223e40bb3","alias":"oa_repair_operation","name":"Valve repair","description":"","parent":null,"body":{"Oa":{"Shared":{"ExchangeItem":{"kind":"Information","mechanism":"Operation","supertype":null}}}}},"d75eb3fa-a27d-52d5-8782-8b342b3865f6":{"id":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","alias":"sa_confirm","name":"Confirm safe pressure","description":"","parent":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","body":{"Sa":"Function"}},"dddae020-a444-5d48-acc8-139d2696a672":{"id":"dddae020-a444-5d48-acc8-139d2696a672","alias":"sa_assess","name":"Assess pressure alarm","description":"","parent":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","body":{"Sa":"Function"}},"df2fd3f8-6bc2-5380-a13f-36643ed35ac7":{"id":"df2fd3f8-6bc2-5380-a13f-36643ed35ac7","alias":"oa_report_step","name":"Report the measured result","description":"","parent":"5d3af417-244c-54bb-9588-16daedda4e1f","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"b436d0b3-c824-5a96-af6b-2c269816d1cc","sender":null,"receiver":null,"message_kind":"Asynchronous","reply_to":null,"values":[]}},"precondition":"","postcondition":""}}}}},"e00594a3-6122-5a6b-b3c2-ecb5506c741d":{"id":"e00594a3-6122-5a6b-b3c2-ecb5506c741d","alias":"oa_confirm_step","name":"Confirm safe pressure","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"Action":{"action":"727c0b5c-8db6-5eb7-83d6-735519c5949f","lifeline":null}},"precondition":"","postcondition":""}}}}},"e07c3952-4a1a-5cc7-b7d5-03a01101ce49":{"id":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","alias":"oa_technician","name":"Field technician","description":"","parent":null,"body":{"Oa":"Actor"}},"e6d69cbd-99d7-596b-bbe3-dada6118a600":{"id":"e6d69cbd-99d7-596b-bbe3-dada6118a600","alias":"sa_technician_port","name":"Repair service provider","description":"Explicitly chosen Standard component port for the repair service.","parent":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","body":{"Sa":{"Shared":{"Port":{"contract":{"Component":{"kind":"Standard","orientation":"Unset"}},"legacy":null}}}}},"e7824764-5db9-5384-8198-2fbaea2b10b2":{"id":"e7824764-5db9-5384-8198-2fbaea2b10b2","alias":"oa_pressure","name":"Measured pressure","description":"","parent":null,"body":{"Oa":{"Shared":{"DataType":{"definition":{"Real":{"minimum":0.0,"maximum":600.0}},"default":null,"unit":"kPa"}}}}},"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac":{"id":"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac","alias":"sa_report_step","name":"Report the measured result","description":"","parent":"93eb6479-54e9-59cb-ac7b-16912347bfc0","body":{"Sa":{"Shared":{"Occurrence":{"body":{"Exchange":{"exchange":"684eadc3-e670-5779-a60f-bbc9a5bfb062","sender":null,"receiver":null,"message_kind":"Asynchronous","reply_to":null,"values":[]}},"precondition":"","postcondition":""}}}}},"f746a1cd-ff9f-55c0-b325-01c03d2f4fae":{"id":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","alias":"sa_full_scenario","name":"Restore supply through field repair","description":"","parent":null,"body":{"Sa":{"Shared":{"Scenario":{"viewpoint":"BoundaryInterface","context":"81259051-370a-512d-a3b5-6420a6f933b6","precondition":"A pressure alarm has been assessed","postcondition":"The controller has received the measured pressure after repair","steps":["1c9da843-e2d3-5591-8e3f-db083a42867e"]}}}}},"fc6763bf-a534-54bf-afcd-57ab285ff07d":{"id":"fc6763bf-a534-54bf-afcd-57ab285ff07d","alias":"oa_use_field","name":"Use the field repair procedure","description":"","parent":"58bae2b0-f560-50f2-818d-19091d22d18a","body":{"Oa":{"Shared":{"Occurrence":{"body":{"SequenceReference":{"sequence":"5d3af417-244c-54bb-9588-16daedda4e1f"}},"precondition":"","postcondition":""}}}}},"fc81c5f0-0442-5b88-992b-e5b10f351c59":{"id":"fc81c5f0-0442-5b88-992b-e5b10f351c59","alias":"oa_responder","name":"Technician","description":"","parent":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","body":{"Oa":{"Shared":{"Lifeline":{"represented":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49"}}}}},"fffff882-78fd-5415-928d-c1ef7fac6576":{"id":"fffff882-78fd-5415-928d-c1ef7fac6576","alias":"oa_outer_technician","name":"Technician","description":"","parent":"d6f881a4-95da-54e9-ad97-1b8965532629","body":{"Oa":{"Shared":{"Lifeline":{"represented":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49"}}}}}},"relations":{"094b888c-450c-5c4f-971a-7d75db059574":{"id":"094b888c-450c-5c4f-971a-7d75db059574","alias":"oa_request_carriage","name":"Exchange allocation: Request field repair","description":"","body":{"ExchangeAllocation":{"source":"27b47887-baf0-518b-bf87-f5acbf7d0b93","target":"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d"}}},"09eaa992-4cdf-5ea3-b748-f10fd74b8cba":{"id":"09eaa992-4cdf-5ea3-b748-f10fd74b8cba","alias":"sa_port_request_in","name":"Port allocation: Request field repair input","description":"","body":{"PortAllocation":{"source":"e6d69cbd-99d7-596b-bbe3-dada6118a600","target":"d2113fb0-a531-54ef-9484-13951b00ab8f"}}},"0c4c9e58-ff32-5c00-b82a-d408a4be0183":{"id":"0c4c9e58-ff32-5c00-b82a-d408a4be0183","alias":"oa_mission_participant","name":"Mission involvement: Maintain safe water supply","description":"","body":{"MissionInvolvement":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"c9c61f50-06e0-5d17-973d-dcc57cd5cc90"}}},"0f6ac3fb-4ad6-581e-ad14-336472072d5e":{"id":"0f6ac3fb-4ad6-581e-ad14-336472072d5e","alias":"sa_field_merge","name":"Continue","description":"","body":{"SequenceLink":{"source":"d5e61c5d-510b-5091-a878-da46f3a9e152","target":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","guard":""}}},"109e2d6b-7e86-5934-93a5-fab56eced84e":{"id":"109e2d6b-7e86-5934-93a5-fab56eced84e","alias":"oa_assess_then_decide","name":"Continue","description":"","body":{"SequenceLink":{"source":"0b07b9ed-492d-57f6-b0b1-ce8a709238a7","target":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","guard":""}}},"13c3bfa4-9254-5ab2-b96f-f65f402adf81":{"id":"13c3bfa4-9254-5ab2-b96f-f65f402adf81","alias":"sa_alarm_transition","name":"State transition: Awaiting repair","description":"","body":{"StateTransition":{"source":"8af21f9b-c21e-5aae-af0d-0958840f6655","target":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","transition_kind":"External","triggers":["01490fa8-2f01-5ac8-9722-d55d45414379"],"effects":[],"trigger":"","guard":"","effect":""}}},"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a":{"id":"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a","alias":"oa_reset_allocation","name":"Allocation: Reset valve remotely","description":"","body":{"Allocation":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"d0c8be87-d238-503a-a549-7558a210507f"}}},"1b245065-7242-5d81-8472-aaeb932054c9":{"id":"1b245065-7242-5d81-8472-aaeb932054c9","alias":"sa_audit_allocation","name":"Allocation: Audit pressure thresholds","description":"","body":{"Allocation":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"4149a872-3440-59de-9879-8981e78d27ab"}}},"1bbd5957-1173-51d8-97e3-ba4f084227ae":{"id":"1bbd5957-1173-51d8-97e3-ba4f084227ae","alias":"sa_field_path","name":"else","description":"","body":{"SequenceLink":{"source":"30c8fad9-a49b-5692-9542-3148e76afd7b","target":"d5e61c5d-510b-5091-a878-da46f3a9e152","guard":"else"}}},"1c1e5634-ba8c-591f-b143-90a27cdc6cd2":{"id":"1c1e5634-ba8c-591f-b143-90a27cdc6cd2","alias":"sa_mission_participant","name":"Mission involvement: Maintain safe water supply","description":"","body":{"MissionInvolvement":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"5ad034b1-084d-5273-9e70-971671766132"}}},"1e738f27-a3a1-526d-b330-6384088b9689":{"id":"1e738f27-a3a1-526d-b330-6384088b9689","alias":"sa_confirm_path","name":"Continue","description":"","body":{"SequenceLink":{"source":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","target":"47bec4f9-d6d0-5ed1-adca-fa0d960dc416","guard":""}}},"1f8b1898-65f6-5360-99cf-b78a71bd50ec":{"id":"1f8b1898-65f6-5360-99cf-b78a71bd50ec","alias":"oa_mission_delivery","name":"Mission capability: Restore a safe supply","description":"","body":{"MissionCapability":{"source":"c9c61f50-06e0-5d17-973d-dcc57cd5cc90","target":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb"}}},"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97":{"id":"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97","alias":"oa_normal_transition","name":"State transition: Monitoring","description":"","body":{"StateTransition":{"source":"58c15833-6e75-523a-b57f-a88f19f6d672","target":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","transition_kind":"External","triggers":[],"effects":[],"trigger":"","guard":"repair confirmed and pressure is safe","effect":""}}},"229ee94f-d147-50f6-9769-b5bd0c03a084":{"id":"229ee94f-d147-50f6-9769-b5bd0c03a084","alias":"oa_confirm_path","name":"Continue","description":"","body":{"SequenceLink":{"source":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","target":"e00594a3-6122-5a6b-b3c2-ecb5506c741d","guard":""}}},"27b47887-baf0-518b-bf87-f5acbf7d0b93":{"id":"27b47887-baf0-518b-bf87-f5acbf7d0b93","alias":"oa_contact","name":"Technician service conversation","description":"","body":{"CommunicationMean":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","oriented":false,"items":["d736c7d6-d369-550a-8ba4-dae223e40bb3"]}}},"2b00270c-79a5-52a5-af96-33346bea531b":{"id":"2b00270c-79a5-52a5-af96-33346bea531b","alias":"oa_start_monitoring","name":"State transition: Monitoring","description":"","body":{"StateTransition":{"source":"a7ffb869-9dde-5e76-b276-c719c5c143a9","target":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","transition_kind":"External","triggers":[],"effects":[],"trigger":"","guard":"","effect":""}}},"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3":{"id":"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3","alias":"sa_reset_allocation","name":"Allocation: Reset valve remotely","description":"","body":{"Allocation":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"09342ccb-044b-5483-ac58-87dc3cf7831c"}}},"3f54d890-4ca5-5e36-873b-abb5c92d578c":{"id":"3f54d890-4ca5-5e36-873b-abb5c92d578c","alias":"oa_request_then_repair","name":"Sequence link: Repair the valve","description":"","body":{"SequenceLink":{"source":"5ba8079c-2dbe-5e98-ae82-2b60c6020a02","target":"c59432fe-6092-5ee0-908d-9dbf39476471","guard":""}}},"4549d3fa-5ab9-52a9-b4f9-3a78fc9d625a":{"id":"4549d3fa-5ab9-52a9-b4f9-3a78fc9d625a","alias":"oa_report_carriage","name":"Exchange allocation: Report repair result","description":"","body":{"ExchangeAllocation":{"source":"27b47887-baf0-518b-bf87-f5acbf7d0b93","target":"b436d0b3-c824-5a96-af6b-2c269816d1cc"}}},"47730532-0372-5cc5-9d6d-0b8953aebdd8":{"id":"47730532-0372-5cc5-9d6d-0b8953aebdd8","alias":"sa_start_monitoring","name":"State transition: Monitoring","description":"","body":{"StateTransition":{"source":"57eb5348-14d8-560e-996a-8dbf993243e2","target":"8af21f9b-c21e-5aae-af0d-0958840f6655","transition_kind":"External","triggers":[],"effects":[],"trigger":"","guard":"","effect":""}}},"4c4c4851-5a3d-5bb9-94df-b19f9cf39819":{"id":"4c4c4851-5a3d-5bb9-94df-b19f9cf39819","alias":"sa_request_carriage","name":"Exchange allocation: Request field repair","description":"","body":{"ExchangeAllocation":{"source":"63009b5f-539e-5914-b630-ec6b7fefb4d5","target":"93474111-f23e-56c1-b61b-b7c2396b91bd"}}},"4f85337b-f6eb-533c-a45a-9a5d1d9567ca":{"id":"4f85337b-f6eb-533c-a45a-9a5d1d9567ca","alias":"sa_client_requires","name":"Interface requirement: Valve repair service","description":"","body":{"InterfaceRequirement":{"source":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","target":"a4b8942e-a975-5f88-ad14-8f38c345baac"}}},"55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9":{"id":"55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9","alias":"sa_port_request_out","name":"Port allocation: Request field repair output","description":"","body":{"PortAllocation":{"source":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","target":"24a6850e-b819-57e0-af88-ca4ab76581b7"}}},"55f89fbf-aa3c-5ae1-95ef-ac676f9c1ada":{"id":"55f89fbf-aa3c-5ae1-95ef-ac676f9c1ada","alias":"sa_provider_provides","name":"Interface provision: Valve repair service","description":"","body":{"InterfaceProvision":{"source":"e6d69cbd-99d7-596b-bbe3-dada6118a600","target":"a4b8942e-a975-5f88-ad14-8f38c345baac"}}},"568c5c01-de21-52a2-83bd-afdddc158085":{"id":"568c5c01-de21-52a2-83bd-afdddc158085","alias":"sa_port_report_in","name":"Port allocation: Report repair result input","description":"","body":{"PortAllocation":{"source":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","target":"391af7c4-b07d-53a7-8ddd-5c81461fc4f8"}}},"594c61cd-94e0-5c07-890d-edfd520d7df9":{"id":"594c61cd-94e0-5c07-890d-edfd520d7df9","alias":"oa_assess_allocation","name":"Allocation: Assess pressure alarm","description":"","body":{"Allocation":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"61f7bbfb-74a4-5540-9182-2583dfb27a49"}}},"628cb4fc-fe63-5f6b-b364-6268f26b5740":{"id":"628cb4fc-fe63-5f6b-b364-6268f26b5740","alias":"oa_assessment_delivery","name":"Chain involvement: Assess an alarm","description":"","body":{"ChainInvolvement":{"source":"022d3cfa-bbaf-5e13-924a-8e55099b8745","target":"6a30b763-cc51-546d-907f-5c63657cfd03"}}},"63009b5f-539e-5914-b630-ec6b7fefb4d5":{"id":"63009b5f-539e-5914-b630-ec6b7fefb4d5","alias":"sa_contact","name":"Technician service conversation","description":"","body":{"BoundaryExchange":{"source":"98d411e7-7c65-5c3f-b543-8bf0f2522ea2","target":"e6d69cbd-99d7-596b-bbe3-dada6118a600","oriented":false,"items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}}},"66efc484-53c7-51a3-89e9-422429344b38":{"id":"66efc484-53c7-51a3-89e9-422429344b38","alias":"sa_response_delivery","name":"Chain involvement: Restore a safe supply","description":"","body":{"ChainInvolvement":{"source":"5139ce73-56fd-5875-ba3a-e569fc890231","target":"81259051-370a-512d-a3b5-6420a6f933b6"}}},"684eadc3-e670-5779-a60f-bbc9a5bfb062":{"id":"684eadc3-e670-5779-a60f-bbc9a5bfb062","alias":"sa_repair_report","name":"Report repair result","description":"","body":{"FunctionalExchange":{"source":"9497e10f-04c4-5586-8738-2464a6f00bd4","target":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","source_port":"994faed7-dbc8-5b96-9d62-7604ac0fbc3a","target_port":"391af7c4-b07d-53a7-8ddd-5c81461fc4f8","items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}}},"6a6d968f-26d6-5dbb-b721-5a27d362779a":{"id":"6a6d968f-26d6-5dbb-b721-5a27d362779a","alias":"sa_request_then_repair","name":"Sequence link: Repair the valve","description":"","body":{"SequenceLink":{"source":"40d94322-baa2-5c81-b261-ff47cdc33782","target":"0f195fea-3493-5ebd-966d-da9eddeb05d7","guard":""}}},"6e2c1b47-764c-577a-b325-ff66dd2a2768":{"id":"6e2c1b47-764c-577a-b325-ff66dd2a2768","alias":"sa_normal_transition","name":"State transition: Monitoring","description":"","body":{"StateTransition":{"source":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","target":"8af21f9b-c21e-5aae-af0d-0958840f6655","transition_kind":"External","triggers":[],"effects":[],"trigger":"","guard":"repair confirmed and pressure is safe","effect":""}}},"725f2e1b-aa2c-5615-9b1f-28da178168fa":{"id":"725f2e1b-aa2c-5615-9b1f-28da178168fa","alias":"sa_repair_allocation","name":"Allocation: Repair valve in the field","description":"","body":{"Allocation":{"source":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","target":"9497e10f-04c4-5586-8738-2464a6f00bd4"}}},"76218d89-68fd-531d-b35b-90c5b769a5ef":{"id":"76218d89-68fd-531d-b35b-90c5b769a5ef","alias":"oa_remote_path","name":"remote reset is authorized","description":"","body":{"SequenceLink":{"source":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","target":"d2026fc2-74a8-5e22-9942-ff3eb68a3677","guard":"remote reset is authorized"}}},"7fa37e63-db65-5aa7-88f2-31ff4347a787":{"id":"7fa37e63-db65-5aa7-88f2-31ff4347a787","alias":"oa_assess_on_entry","name":"Assess when repair is needed","description":"","body":{"StateAction":{"source":"58c15833-6e75-523a-b57f-a88f19f6d672","target":"61f7bbfb-74a4-5540-9182-2583dfb27a49","phase":"Entry"}}},"7fb30b1d-195c-5f0e-a19c-a536f519a899":{"id":"7fb30b1d-195c-5f0e-a19c-a536f519a899","alias":"sa_repair_then_report","name":"Sequence link: Report the measured result","description":"","body":{"SequenceLink":{"source":"0f195fea-3493-5ebd-966d-da9eddeb05d7","target":"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac","guard":""}}},"93474111-f23e-56c1-b61b-b7c2396b91bd":{"id":"93474111-f23e-56c1-b61b-b7c2396b91bd","alias":"sa_repair_request","name":"Request field repair","description":"","body":{"FunctionalExchange":{"source":"dddae020-a444-5d48-acc8-139d2696a672","target":"9497e10f-04c4-5586-8738-2464a6f00bd4","source_port":"24a6850e-b819-57e0-af88-ca4ab76581b7","target_port":"d2113fb0-a531-54ef-9484-13951b00ab8f","items":["a962fc5e-3ab0-5296-8b0d-fd84633f9218"]}}},"93eaad8d-83b7-5980-b9bb-86c9e3f31da4":{"id":"93eaad8d-83b7-5980-b9bb-86c9e3f31da4","alias":"sa_assessment_support","name":"Capability involvement: Assess an alarm","description":"","body":{"CapabilityInvolvement":{"source":"dddae020-a444-5d48-acc8-139d2696a672","target":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f"}}},"9b9356d7-2db2-5a94-a47e-ea892cf02afe":{"id":"9b9356d7-2db2-5a94-a47e-ea892cf02afe","alias":"sa_assess_allocation","name":"Allocation: Assess pressure alarm","description":"","body":{"Allocation":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"dddae020-a444-5d48-acc8-139d2696a672"}}},"9d4a131f-36ad-5125-b21f-c3dd033b8c82":{"id":"9d4a131f-36ad-5125-b21f-c3dd033b8c82","alias":"sa_assess_then_decide","name":"Continue","description":"","body":{"SequenceLink":{"source":"9024243c-ccc1-5edb-8477-2aa16e5e9a50","target":"30c8fad9-a49b-5692-9542-3148e76afd7b","guard":""}}},"a0902e0f-3d18-576a-9aca-975a136dfdd7":{"id":"a0902e0f-3d18-576a-9aca-975a136dfdd7","alias":"sa_mission_delivery","name":"Mission capability: Restore a safe supply","description":"","body":{"MissionCapability":{"source":"5ad034b1-084d-5273-9e70-971671766132","target":"81259051-370a-512d-a3b5-6420a6f933b6"}}},"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57":{"id":"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57","alias":"sa_assessment_delivery","name":"Chain involvement: Assess an alarm","description":"","body":{"ChainInvolvement":{"source":"acd5a018-f559-5298-a40d-1cf6e1353e74","target":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f"}}},"a887f96a-37cb-5891-8070-011fa276e5b5":{"id":"a887f96a-37cb-5891-8070-011fa276e5b5","alias":"sa_assess_on_entry","name":"Assess when repair is needed","description":"","body":{"StateAction":{"source":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","target":"dddae020-a444-5d48-acc8-139d2696a672","phase":"Entry"}}},"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2":{"id":"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2","alias":"oa_repair_allocation","name":"Allocation: Repair valve in the field","description":"","body":{"Allocation":{"source":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","target":"a21465af-05f3-5fb5-8983-de26932422fb"}}},"b436d0b3-c824-5a96-af6b-2c269816d1cc":{"id":"b436d0b3-c824-5a96-af6b-2c269816d1cc","alias":"oa_repair_report","name":"Report repair result","description":"","body":{"Interaction":{"source":"a21465af-05f3-5fb5-8983-de26932422fb","target":"727c0b5c-8db6-5eb7-83d6-735519c5949f","items":["d736c7d6-d369-550a-8ba4-dae223e40bb3"]}}},"b76bf8de-2fa4-563f-a540-dd30f30e6c49":{"id":"b76bf8de-2fa4-563f-a540-dd30f30e6c49","alias":"sa_confirm_allocation","name":"Allocation: Confirm safe pressure","description":"","body":{"Allocation":{"source":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","target":"d75eb3fa-a27d-52d5-8782-8b342b3865f6"}}},"bac43d3b-910b-5bdc-be9b-f78cf973e1ed":{"id":"bac43d3b-910b-5bdc-be9b-f78cf973e1ed","alias":"oa_remote_merge","name":"Continue","description":"","body":{"SequenceLink":{"source":"d2026fc2-74a8-5e22-9942-ff3eb68a3677","target":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","guard":""}}},"bfd4326e-ea65-5269-b5e6-e063a355d1e9":{"id":"bfd4326e-ea65-5269-b5e6-e063a355d1e9","alias":"oa_confirm_allocation","name":"Allocation: Confirm safe pressure","description":"","body":{"Allocation":{"source":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","target":"727c0b5c-8db6-5eb7-83d6-735519c5949f"}}},"c1adbbd0-a762-5ee3-8b9a-5c18af377771":{"id":"c1adbbd0-a762-5ee3-8b9a-5c18af377771","alias":"oa_field_path","name":"else","description":"","body":{"SequenceLink":{"source":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","target":"fc6763bf-a534-54bf-afcd-57ab285ff07d","guard":"else"}}},"c7c248f8-28b8-55be-9023-0991d44021e3":{"id":"c7c248f8-28b8-55be-9023-0991d44021e3","alias":"oa_response_delivery","name":"Chain involvement: Restore a safe supply","description":"","body":{"ChainInvolvement":{"source":"58bae2b0-f560-50f2-818d-19091d22d18a","target":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb"}}},"c8196d35-2168-5fef-8b03-ba0d139bc00f":{"id":"c8196d35-2168-5fef-8b03-ba0d139bc00f","alias":"oa_repair_then_report","name":"Sequence link: Report the measured result","description":"","body":{"SequenceLink":{"source":"c59432fe-6092-5ee0-908d-9dbf39476471","target":"df2fd3f8-6bc2-5380-a13f-36643ed35ac7","guard":""}}},"c8593670-8906-530f-b6a2-3ada77a9c219":{"id":"c8593670-8906-530f-b6a2-3ada77a9c219","alias":"oa_field_merge","name":"Continue","description":"","body":{"SequenceLink":{"source":"fc6763bf-a534-54bf-afcd-57ab285ff07d","target":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","guard":""}}},"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d":{"id":"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d","alias":"oa_repair_request","name":"Request field repair","description":"","body":{"Interaction":{"source":"61f7bbfb-74a4-5540-9182-2583dfb27a49","target":"a21465af-05f3-5fb5-8983-de26932422fb","items":["d736c7d6-d369-550a-8ba4-dae223e40bb3"]}}},"d8b6710a-e713-5979-934f-e5ca7d155bb4":{"id":"d8b6710a-e713-5979-934f-e5ca7d155bb4","alias":"sa_remote_path","name":"remote reset is authorized","description":"","body":{"SequenceLink":{"source":"30c8fad9-a49b-5692-9542-3148e76afd7b","target":"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","guard":"remote reset is authorized"}}},"e21d9a54-ae8e-5618-a4f8-67ee22b92638":{"id":"e21d9a54-ae8e-5618-a4f8-67ee22b92638","alias":"oa_include_triage","name":"Capability include: Assess an alarm","description":"","body":{"CapabilityInclude":{"source":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","target":"6a30b763-cc51-546d-907f-5c63657cfd03"}}},"e5279265-8eac-52e8-98dc-571b20475e1f":{"id":"e5279265-8eac-52e8-98dc-571b20475e1f","alias":"sa_remote_merge","name":"Continue","description":"","body":{"SequenceLink":{"source":"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","target":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","guard":""}}},"e53b7a40-e8a3-5b3f-826d-c2b5c164a84a":{"id":"e53b7a40-e8a3-5b3f-826d-c2b5c164a84a","alias":"sa_port_report_out","name":"Port allocation: Report repair result output","description":"","body":{"PortAllocation":{"source":"e6d69cbd-99d7-596b-bbe3-dada6118a600","target":"994faed7-dbc8-5b96-9d62-7604ac0fbc3a"}}},"f074e041-23cf-54ad-af9c-f171e30621e7":{"id":"f074e041-23cf-54ad-af9c-f171e30621e7","alias":"sa_repair_interface_item","name":"Repair operation contract","description":"","body":{"InterfaceItemAllocation":{"source":"a4b8942e-a975-5f88-ad14-8f38c345baac","target":"a962fc5e-3ab0-5296-8b0d-fd84633f9218","order":0,"transmission":"Synchronous","acquisition":"Accept"}}},"f3fe7690-734a-5877-8b57-a6599a4033c4":{"id":"f3fe7690-734a-5877-8b57-a6599a4033c4","alias":"sa_include_triage","name":"Capability include: Assess an alarm","description":"","body":{"CapabilityInclude":{"source":"81259051-370a-512d-a3b5-6420a6f933b6","target":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f"}}},"fbde9d5e-c7e9-55db-a2be-497345c491b3":{"id":"fbde9d5e-c7e9-55db-a2be-497345c491b3","alias":"oa_alarm_transition","name":"State transition: Awaiting repair","description":"","body":{"StateTransition":{"source":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","target":"58c15833-6e75-523a-b57f-a88f19f6d672","transition_kind":"External","triggers":["65d6b8d6-271a-5c84-8b42-abbe310c955e"],"effects":[],"trigger":"","guard":"","effect":""}}},"ff9897b3-a23a-5994-a5b3-99a5b4d34ceb":{"id":"ff9897b3-a23a-5994-a5b3-99a5b4d34ceb","alias":"sa_report_carriage","name":"Exchange allocation: Report repair result","description":"","body":{"ExchangeAllocation":{"source":"63009b5f-539e-5914-b630-ec6b7fefb4d5","target":"684eadc3-e670-5779-a60f-bbc9a5bfb062"}}},"ffdbfcd0-d423-5707-a880-0dfbe1400f72":{"id":"ffdbfcd0-d423-5707-a880-0dfbe1400f72","alias":"oa_assessment_support","name":"Capability involvement: Assess an alarm","description":"","body":{"CapabilityInvolvement":{"source":"61f7bbfb-74a4-5540-9182-2583dfb27a49","target":"6a30b763-cc51-546d-907f-5c63657cfd03"}}}},"diagrams":{"103ea62c-ac56-5827-94e7-cf09bca96ccc":{"id":"103ea62c-ac56-5827-94e7-cf09bca96ccc","alias":"oa_allocation_view","name":"1 · OA responsibility and repair traffic","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Oa","projection":"Allocation","view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":"All","participant_categories":"All","coverage":"All","work_contexts":"All","exchange_labels":"Name"},"nodes":{"202ebe37-ddb4-5099-8ce9-ec3e895ab9e9":{"id":"202ebe37-ddb4-5099-8ce9-ec3e895ab9e9","alias":"oa_allocation_view_oa_repair","element":"a21465af-05f3-5fb5-8983-de26932422fb","position":{"x":890.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"3191e05c-1c7f-5f0e-beb0-5f3bded54c48":{"id":"3191e05c-1c7f-5f0e-beb0-5f3bded54c48","alias":"oa_allocation_view_oa_control","element":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","position":{"x":60.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"5ae1c46d-59a3-50fd-8cc3-b292df21f951":{"id":"5ae1c46d-59a3-50fd-8cc3-b292df21f951","alias":"oa_allocation_view_oa_assess","element":"61f7bbfb-74a4-5540-9182-2583dfb27a49","position":{"x":100.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"7066f78c-9736-5349-b94a-0587331b980e":{"id":"7066f78c-9736-5349-b94a-0587331b980e","alias":"oa_allocation_view_oa_reset","element":"d0c8be87-d238-503a-a549-7558a210507f","position":{"x":100.0,"y":330.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"d27f28ef-f10a-5355-9a05-6f2fd39b7de6":{"id":"d27f28ef-f10a-5355-9a05-6f2fd39b7de6","alias":"oa_allocation_view_oa_technician","element":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","position":{"x":850.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"edd74060-ac61-5450-a57c-a6577daa5d50":{"id":"edd74060-ac61-5450-a57c-a6577daa5d50","alias":"oa_allocation_view_oa_confirm","element":"727c0b5c-8db6-5eb7-83d6-735519c5949f","position":{"x":100.0,"y":490.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]},"30d5baf9-6581-5cb6-846a-bcaa1e6cce63":{"id":"30d5baf9-6581-5cb6-846a-bcaa1e6cce63","alias":"sa_state_view","name":"5 · SA pressure supervision","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Sa","projection":{"StateMachine":{"machine":"132b3f28-3f88-5327-9868-8c8b645ed412"}},"view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":"All","participant_categories":"All","coverage":"All","work_contexts":"All","exchange_labels":"Name"},"nodes":{"55a74f91-2025-5001-8db8-9566b1dbe783":{"id":"55a74f91-2025-5001-8db8-9566b1dbe783","alias":"sa_state_view_sa_monitor_region","element":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","position":{"x":70.0,"y":95.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"57acbb71-ca86-57fc-ae90-42dad195f0e0":{"id":"57acbb71-ca86-57fc-ae90-42dad195f0e0","alias":"sa_state_view_sa_waiting","element":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","position":{"x":650.0,"y":200.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"5e2326a0-0f6c-5f8d-8a21-fdded18a9281":{"id":"5e2326a0-0f6c-5f8d-8a21-fdded18a9281","alias":"sa_state_view_sa_monitor_initial","element":"57eb5348-14d8-560e-996a-8dbf993243e2","position":{"x":100.0,"y":200.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"a676fbb9-0833-59a8-98cf-a10d8f4b7434":{"id":"a676fbb9-0833-59a8-98cf-a10d8f4b7434","alias":"sa_state_view_sa_monitor","element":"132b3f28-3f88-5327-9868-8c8b645ed412","position":{"x":30.0,"y":30.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"b3af7b04-5a45-5b82-ab69-7eada4b876f0":{"id":"b3af7b04-5a45-5b82-ab69-7eada4b876f0","alias":"sa_state_view_sa_monitoring","element":"8af21f9b-c21e-5aae-af0d-0958840f6655","position":{"x":220.0,"y":200.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]},"35d3c24b-289e-59e5-a610-8333e2c6a4bb":{"id":"35d3c24b-289e-59e5-a610-8333e2c6a4bb","alias":"sa_allocation_view","name":"2 · SA service boundary and functions","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Sa","projection":"Allocation","view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":"All","participant_categories":"All","coverage":"All","work_contexts":"All","exchange_labels":"Name"},"nodes":{"34630a18-41b0-5fdd-bff4-ee86e93e8651":{"id":"34630a18-41b0-5fdd-bff4-ee86e93e8651","alias":"sa_allocation_view_sa_repair","element":"9497e10f-04c4-5586-8738-2464a6f00bd4","position":{"x":890.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"60f6ad74-b69e-5aef-b832-f1bd60b903ae":{"id":"60f6ad74-b69e-5aef-b832-f1bd60b903ae","alias":"sa_allocation_view_sa_assess","element":"dddae020-a444-5d48-acc8-139d2696a672","position":{"x":100.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"73406244-ebd7-5995-86c7-e17c73c50b32":{"id":"73406244-ebd7-5995-86c7-e17c73c50b32","alias":"sa_allocation_view_sa_reset","element":"09342ccb-044b-5483-ac58-87dc3cf7831c","position":{"x":100.0,"y":330.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"7e3ba36f-bc68-5520-bdb9-77083bb7bba2":{"id":"7e3ba36f-bc68-5520-bdb9-77083bb7bba2","alias":"sa_allocation_view_sa_confirm","element":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","position":{"x":100.0,"y":490.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"8345c76a-8d85-5c31-902e-ec1cd33ed4a3":{"id":"8345c76a-8d85-5c31-902e-ec1cd33ed4a3","alias":"sa_allocation_view_sa_control","element":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","position":{"x":60.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"f7225d1c-e506-505d-bb20-916950269d4b":{"id":"f7225d1c-e506-505d-bb20-916950269d4b","alias":"sa_allocation_view_sa_technician","element":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","position":{"x":850.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]},"3e6ad194-61b5-584c-b0f0-a78a20af5781":{"id":"3e6ad194-61b5-584c-b0f0-a78a20af5781","alias":"sa_capability_view","name":"4 · SA mission and included capability","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Sa","projection":"Capabilities","view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":"All","participant_categories":"All","coverage":"All","work_contexts":"All","exchange_labels":"Name"},"nodes":{"069a3fb3-077c-59d8-91da-27b0665143c7":{"id":"069a3fb3-077c-59d8-91da-27b0665143c7","alias":"sa_capability_view_sa_triage","element":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f","position":{"x":800.0,"y":260.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"41ddb68b-bd2b-5f91-82eb-efde01157828":{"id":"41ddb68b-bd2b-5f91-82eb-efde01157828","alias":"sa_capability_view_sa_control","element":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","position":{"x":60.0,"y":60.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"4b814335-bf98-5b68-85d5-ea549766517a":{"id":"4b814335-bf98-5b68-85d5-ea549766517a","alias":"sa_capability_view_sa_mission","element":"5ad034b1-084d-5273-9e70-971671766132","position":{"x":420.0,"y":60.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"d3bc13f9-7726-5280-83fe-63f391c45afb":{"id":"d3bc13f9-7726-5280-83fe-63f391c45afb","alias":"sa_capability_view_sa_restore","element":"81259051-370a-512d-a3b5-6420a6f933b6","position":{"x":420.0,"y":260.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]},"50af4c9b-93ce-5ff5-a1f8-7a81eb97e779":{"id":"50af4c9b-93ce-5ff5-a1f8-7a81eb97e779","alias":"sa_service_view","name":"3 · SA service conversation only","description":"Teaching view: positions and filters do not change ownership or exchange identities.","layer":"Sa","projection":"Allocation","view_options":{"hidden_edges":[],"relation_kinds":"All","work_categories":{"Any":[]},"participant_categories":{"Any":["781cbe75-410f-5cc5-aeb8-a43491f77b99"]},"coverage":"All","work_contexts":"All","exchange_labels":"NameAndItems"},"nodes":{"40210589-69f7-5209-b329-10bb83cf615c":{"id":"40210589-69f7-5209-b329-10bb83cf615c","alias":"sa_service_view_sa_technician","element":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","position":{"x":850.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"439f1e45-e5ed-567c-978b-4c93ef267db1":{"id":"439f1e45-e5ed-567c-978b-4c93ef267db1","alias":"sa_service_view_sa_assess","element":"dddae020-a444-5d48-acc8-139d2696a672","position":{"x":100.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"6f138672-149b-5f88-ab07-7fc413a42262":{"id":"6f138672-149b-5f88-ab07-7fc413a42262","alias":"sa_service_view_sa_confirm","element":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","position":{"x":100.0,"y":490.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"ae36489d-6ec8-5f1c-b603-8b497227efba":{"id":"ae36489d-6ec8-5f1c-b603-8b497227efba","alias":"sa_service_view_sa_repair","element":"9497e10f-04c4-5586-8738-2464a6f00bd4","position":{"x":890.0,"y":170.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"d52da4e6-40b7-5dbc-84fb-80c443711c69":{"id":"d52da4e6-40b7-5dbc-84fb-80c443711c69","alias":"sa_service_view_sa_reset","element":"09342ccb-044b-5483-ac58-87dc3cf7831c","position":{"x":100.0,"y":330.0},"size":{"width":245.0,"height":110.0},"collapsed":false},"f53d4352-b042-56a6-8b3e-c51cd27254f9":{"id":"f53d4352-b042-56a6-8b3e-c51cd27254f9","alias":"sa_service_view_sa_control","element":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","position":{"x":60.0,"y":80.0},"size":{"width":245.0,"height":110.0},"collapsed":false}},"routes":[]}},"artifact_links":{"f5922bf7-05d8-590f-86e9-1d09f37f4fa6":{"id":"f5922bf7-05d8-590f-86e9-1d09f37f4fa6","alias":"repair_test_evidence","name":"Repair conversation acceptance notes","description":"A local teaching artifact, not proof of a real valve's safety.","owner":"730b27ca-b039-5a3b-8dc6-03418f9061b3","relation":"Verifies","uri":"evidence/repair-check.md","revision":"lesson-1","fragment":"acceptance"}},"traces":{"0754be23-e4b8-53bc-b03c-89c2dbd80361":{"id":"0754be23-e4b8-53bc-b03c-89c2dbd80361","alias":"trace_oa_waiting","name":"Awaiting repair ↔ Awaiting repair","description":"","oa":"58c15833-6e75-523a-b57f-a88f19f6d672","sa":"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37","kind":"State","baseline":{"oa":{"name":"Awaiting repair","description":""},"sa":{"name":"Awaiting repair","description":""}}},"07a7b82a-b5a7-5737-abfa-09e422f7420e":{"id":"07a7b82a-b5a7-5737-abfa-09e422f7420e","alias":"trace_oa_start_monitoring","name":"State transition: Monitoring ↔ State transition: Monitoring","description":"","oa":"2b00270c-79a5-52a5-af96-33346bea531b","sa":"47730532-0372-5cc5-9d6d-0b8953aebdd8","kind":"Manual","baseline":{"oa":{"name":"State transition: Monitoring","description":""},"sa":{"name":"State transition: Monitoring","description":""}}},"0c7c8a06-163e-5b3e-8a98-e66e2ce8963b":{"id":"0c7c8a06-163e-5b3e-8a98-e66e2ce8963b","alias":"trace_oa_alarm_transition","name":"State transition: Awaiting repair ↔ State transition: Awaiting repair","description":"","oa":"fbde9d5e-c7e9-55db-a2be-497345c491b3","sa":"13c3bfa4-9254-5ab2-b96f-f65f402adf81","kind":"Manual","baseline":{"oa":{"name":"State transition: Awaiting repair","description":""},"sa":{"name":"State transition: Awaiting repair","description":""}}},"0c9de959-d366-5765-98eb-450ea27bd316":{"id":"0c9de959-d366-5765-98eb-450ea27bd316","alias":"trace_oa_merge","name":"Recovery path completed ↔ Recovery path completed","description":"","oa":"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d","sa":"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07","kind":"Sequence","baseline":{"oa":{"name":"Recovery path completed","description":""},"sa":{"name":"Recovery path completed","description":""}}},"0d905fbb-5b3c-56f0-9f11-a27091901eb0":{"id":"0d905fbb-5b3c-56f0-9f11-a27091901eb0","alias":"trace_oa_pressure_parameter","name":"Pressure before / after repair ↔ Pressure before / after repair","description":"","oa":"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7","sa":"bb12ba5d-aab5-5a1b-99de-c767f5365b57","kind":"Item","baseline":{"oa":{"name":"Pressure before / after repair","description":""},"sa":{"name":"Pressure before / after repair","description":""}}},"0fbef164-b5d3-58ba-ba41-54d0e63709ab":{"id":"0fbef164-b5d3-58ba-ba41-54d0e63709ab","alias":"trace_oa_restore","name":"Restore a safe supply ↔ Restore a safe supply","description":"","oa":"3dfee23a-148b-5cec-ad2d-b774e84ea5bb","sa":"81259051-370a-512d-a3b5-6420a6f933b6","kind":"Capability","baseline":{"oa":{"name":"Restore a safe supply","description":""},"sa":{"name":"Restore a safe supply","description":""}}},"12ec320f-2e14-5a5a-8c6b-bd2b6471dae9":{"id":"12ec320f-2e14-5a5a-8c6b-bd2b6471dae9","alias":"trace_oa_monitoring","name":"Monitoring ↔ Monitoring","description":"","oa":"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae","sa":"8af21f9b-c21e-5aae-af0d-0958840f6655","kind":"State","baseline":{"oa":{"name":"Monitoring","description":""},"sa":{"name":"Monitoring","description":""}}},"154abfce-c311-52d1-85d1-3f4c85203b26":{"id":"154abfce-c311-52d1-85d1-3f4c85203b26","alias":"trace_oa_confirm_step","name":"Confirm safe pressure ↔ Confirm safe pressure","description":"","oa":"e00594a3-6122-5a6b-b3c2-ecb5506c741d","sa":"47bec4f9-d6d0-5ed1-adca-fa0d960dc416","kind":"Sequence","baseline":{"oa":{"name":"Confirm safe pressure","description":""},"sa":{"name":"Confirm safe pressure","description":""}}},"1b788e74-36b2-5c17-a936-642dbe51ca3c":{"id":"1b788e74-36b2-5c17-a936-642dbe51ca3c","alias":"trace_oa_remote_merge","name":"Continue ↔ Continue","description":"","oa":"bac43d3b-910b-5bdc-be9b-f78cf973e1ed","sa":"e5279265-8eac-52e8-98dc-571b20475e1f","kind":"Manual","baseline":{"oa":{"name":"Continue","description":""},"sa":{"name":"Continue","description":""}}},"208753e0-9151-50d8-86ca-29fc28eca80b":{"id":"208753e0-9151-50d8-86ca-29fc28eca80b","alias":"trace_oa_monitor_region","name":"Supervision cycle ↔ Supervision cycle","description":"","oa":"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7","sa":"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c","kind":"State","baseline":{"oa":{"name":"Supervision cycle","description":""},"sa":{"name":"Supervision cycle","description":""}}},"241dfdac-2450-5704-a4cb-9f1047db1b6d":{"id":"241dfdac-2450-5704-a4cb-9f1047db1b6d","alias":"trace_oa_caller","name":"Controller ↔ Controller","description":"","oa":"41859a65-ded2-547b-ab03-14e2fa740cf9","sa":"98c61788-2fee-51f4-8cf9-de48e8c70e9e","kind":"Scenario","baseline":{"oa":{"name":"Controller","description":""},"sa":{"name":"Controller","description":""}}},"2e849e31-35aa-5aef-a989-26948038e52b":{"id":"2e849e31-35aa-5aef-a989-26948038e52b","alias":"trace_oa_field_path","name":"else ↔ else","description":"","oa":"c1adbbd0-a762-5ee3-8b9a-5c18af377771","sa":"1bbd5957-1173-51d8-97e3-ba4f084227ae","kind":"Manual","baseline":{"oa":{"name":"else","description":""},"sa":{"name":"else","description":""}}},"2fdcbc6f-526e-5a4e-bde5-314cf0cf3ef3":{"id":"2fdcbc6f-526e-5a4e-bde5-314cf0cf3ef3","alias":"trace_oa_confirm_allocation","name":"Allocation: Confirm safe pressure ↔ Allocation: Confirm safe pressure","description":"","oa":"bfd4326e-ea65-5269-b5e6-e063a355d1e9","sa":"b76bf8de-2fa4-563f-a540-dd30f30e6c49","kind":"Manual","baseline":{"oa":{"name":"Allocation: Confirm safe pressure","description":""},"sa":{"name":"Allocation: Confirm safe pressure","description":""}}},"3694c752-ba80-5702-a7d7-9cc66b6b01d8":{"id":"3694c752-ba80-5702-a7d7-9cc66b6b01d8","alias":"trace_oa_conversation","name":"Repair request and measured reply ↔ Repair request and measured reply","description":"","oa":"20472233-5ce6-5ffe-b4ad-0bdbccf3e423","sa":"730b27ca-b039-5a3b-8dc6-03418f9061b3","kind":"Scenario","baseline":{"oa":{"name":"Repair request and measured reply","description":""},"sa":{"name":"Repair request and measured reply","description":""}}},"3714d547-006f-5c3a-97f8-175ccc23d994":{"id":"3714d547-006f-5c3a-97f8-175ccc23d994","alias":"trace_oa_repair_allocation","name":"Allocation: Repair valve in the field ↔ Allocation: Repair valve in the field","description":"","oa":"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2","sa":"725f2e1b-aa2c-5615-9b1f-28da178168fa","kind":"Manual","baseline":{"oa":{"name":"Allocation: Repair valve in the field","description":""},"sa":{"name":"Allocation: Repair valve in the field","description":""}}},"3a33de40-20a3-5252-899c-c12dc35e9783":{"id":"3a33de40-20a3-5252-899c-c12dc35e9783","alias":"trace_oa_assessment_action","name":"Assess pressure alarm ↔ Assess pressure alarm","description":"","oa":"942975b8-0bef-5ae8-9fcb-c37497833fb0","sa":"bae5b192-5b8e-51c6-82ae-2331af0d33bf","kind":"Sequence","baseline":{"oa":{"name":"Assess pressure alarm","description":""},"sa":{"name":"Assess pressure alarm","description":""}}},"3e7bde54-f9c1-549f-9e5b-2ce1ecb685a7":{"id":"3e7bde54-f9c1-549f-9e5b-2ce1ecb685a7","alias":"trace_oa_repair_traffic","name":"Repair work exchanges ↔ Repair work exchanges","description":"","oa":"9349b353-53f2-56f8-b571-a05b09335cdf","sa":"a9a47e48-100c-57a8-95f0-7fe24da94f94","kind":"Manual","baseline":{"oa":{"name":"Repair work exchanges","description":""},"sa":{"name":"Repair work exchanges","description":""}}},"424eca39-1c29-5a2f-b9ee-33dd018926aa":{"id":"424eca39-1c29-5a2f-b9ee-33dd018926aa","alias":"trace_oa_repair_report","name":"Report repair result ↔ Report repair result","description":"","oa":"b436d0b3-c824-5a96-af6b-2c269816d1cc","sa":"684eadc3-e670-5779-a60f-bbc9a5bfb062","kind":"Exchange","baseline":{"oa":{"name":"Report repair result","description":""},"sa":{"name":"Report repair result","description":""}}},"435bae4c-cf6d-59f3-9eb5-d660ebeec079":{"id":"435bae4c-cf6d-59f3-9eb5-d660ebeec079","alias":"trace_oa_full_scenario","name":"Restore supply through field repair ↔ Restore supply through field repair","description":"","oa":"d6f881a4-95da-54e9-ad97-1b8965532629","sa":"f746a1cd-ff9f-55c0-b325-01c03d2f4fae","kind":"Scenario","baseline":{"oa":{"name":"Restore supply through field repair","description":""},"sa":{"name":"Restore supply through field repair","description":""}}},"48d243f0-553f-507e-acb0-9474ae156b63":{"id":"48d243f0-553f-507e-acb0-9474ae156b63","alias":"trace_oa_monitor_initial","name":"Start ↔ Start","description":"","oa":"a7ffb869-9dde-5e76-b276-c719c5c143a9","sa":"57eb5348-14d8-560e-996a-8dbf993243e2","kind":"State","baseline":{"oa":{"name":"Start","description":""},"sa":{"name":"Start","description":""}}},"5309f955-53fd-5ff4-9c0a-91737e947341":{"id":"5309f955-53fd-5ff4-9c0a-91737e947341","alias":"trace_oa_assess","name":"Assess pressure alarm ↔ Assess pressure alarm","description":"","oa":"61f7bbfb-74a4-5540-9182-2583dfb27a49","sa":"dddae020-a444-5d48-acc8-139d2696a672","kind":"Refinement","baseline":{"oa":{"name":"Assess pressure alarm","description":""},"sa":{"name":"Assess pressure alarm","description":""}}},"595b5729-ccd9-5291-b5d9-30d8c8bd9dfa":{"id":"595b5729-ccd9-5291-b5d9-30d8c8bd9dfa","alias":"trace_oa_reply","name":"Return pressure after repair ↔ Return pressure after repair","description":"","oa":"cc2d497a-fd15-5455-9ee5-e70eb95811d8","sa":"4e1c0a56-ce80-5f13-a93a-6956de54880c","kind":"Scenario","baseline":{"oa":{"name":"Return pressure after repair","description":""},"sa":{"name":"Return pressure after repair","description":""}}},"5b96bfed-63e2-5d7f-b882-91e8b81f8efe":{"id":"5b96bfed-63e2-5d7f-b882-91e8b81f8efe","alias":"trace_oa_assessment_delivery","name":"Chain involvement: Assess an alarm ↔ Chain involvement: Assess an alarm","description":"","oa":"628cb4fc-fe63-5f6b-b364-6268f26b5740","sa":"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57","kind":"Manual","baseline":{"oa":{"name":"Chain involvement: Assess an alarm","description":""},"sa":{"name":"Chain involvement: Assess an alarm","description":""}}},"6acd072d-431e-5881-ab20-1813b4fda0c5":{"id":"6acd072d-431e-5881-ab20-1813b4fda0c5","alias":"trace_oa_triage","name":"Assess an alarm ↔ Assess an alarm","description":"","oa":"6a30b763-cc51-546d-907f-5c63657cfd03","sa":"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f","kind":"Capability","baseline":{"oa":{"name":"Assess an alarm","description":""},"sa":{"name":"Assess an alarm","description":""}}},"6ca4c78a-a5f2-5470-b401-732f5a8825d0":{"id":"6ca4c78a-a5f2-5470-b401-732f5a8825d0","alias":"trace_oa_assessment_procedure","name":"Assess an alarm procedure ↔ Assess an alarm procedure","description":"","oa":"022d3cfa-bbaf-5e13-924a-8e55099b8745","sa":"acd5a018-f559-5298-a40d-1cf6e1353e74","kind":"Sequence","baseline":{"oa":{"name":"Assess an alarm procedure","description":""},"sa":{"name":"Assess an alarm procedure","description":""}}},"6e13cf86-7242-5e33-8912-b037cf6e8c87":{"id":"6e13cf86-7242-5e33-8912-b037cf6e8c87","alias":"trace_oa_assessment_support","name":"Capability involvement: Assess an alarm ↔ Capability involvement: Assess an alarm","description":"","oa":"ffdbfcd0-d423-5707-a880-0dfbe1400f72","sa":"93eaad8d-83b7-5980-b9bb-86c9e3f31da4","kind":"Manual","baseline":{"oa":{"name":"Capability involvement: Assess an alarm","description":""},"sa":{"name":"Capability involvement: Assess an alarm","description":""}}},"70c90b0c-85ce-574a-a217-f0d19fad30e1":{"id":"70c90b0c-85ce-574a-a217-f0d19fad30e1","alias":"trace_oa_response_delivery","name":"Chain involvement: Restore a safe supply ↔ Chain involvement: Restore a safe supply","description":"","oa":"c7c248f8-28b8-55be-9023-0991d44021e3","sa":"66efc484-53c7-51a3-89e9-422429344b38","kind":"Manual","baseline":{"oa":{"name":"Chain involvement: Restore a safe supply","description":""},"sa":{"name":"Chain involvement: Restore a safe supply","description":""}}},"77073fcb-53aa-5f06-987a-0317cbb6971d":{"id":"77073fcb-53aa-5f06-987a-0317cbb6971d","alias":"trace_oa_include_triage","name":"Capability include: Assess an alarm ↔ Capability include: Assess an alarm","description":"","oa":"e21d9a54-ae8e-5618-a4f8-67ee22b92638","sa":"f3fe7690-734a-5877-8b57-a6599a4033c4","kind":"Manual","baseline":{"oa":{"name":"Capability include: Assess an alarm","description":""},"sa":{"name":"Capability include: Assess an alarm","description":""}}},"7a6b4b9c-4220-546a-a752-1587c2881fe1":{"id":"7a6b4b9c-4220-546a-a752-1587c2881fe1","alias":"trace_oa_use_field","name":"Use the field repair procedure ↔ Use the field repair procedure","description":"","oa":"fc6763bf-a534-54bf-afcd-57ab285ff07d","sa":"d5e61c5d-510b-5091-a878-da46f3a9e152","kind":"Sequence","baseline":{"oa":{"name":"Use the field repair procedure","description":""},"sa":{"name":"Use the field repair procedure","description":""}}},"82a5be1a-92a8-578d-9448-086062a20d8f":{"id":"82a5be1a-92a8-578d-9448-086062a20d8f","alias":"trace_oa_reset","name":"Reset valve remotely ↔ Reset valve remotely","description":"","oa":"d0c8be87-d238-503a-a549-7558a210507f","sa":"09342ccb-044b-5483-ac58-87dc3cf7831c","kind":"Refinement","baseline":{"oa":{"name":"Reset valve remotely","description":""},"sa":{"name":"Reset valve remotely","description":""}}},"82cca563-9d5d-5479-aa1a-9db03e9674d1":{"id":"82cca563-9d5d-5479-aa1a-9db03e9674d1","alias":"trace_oa_restore_work","name":"Restore safe pressure ↔ Restore safe pressure","description":"","oa":"1b91f8a7-0bdb-514e-b1cd-955658e09927","sa":"58867e7d-916e-5ebc-9e4c-8dbed1314be3","kind":"Refinement","baseline":{"oa":{"name":"Restore safe pressure","description":""},"sa":{"name":"Restore safe pressure","description":""}}},"8d693d90-5017-56af-b056-d29d3cb46baa":{"id":"8d693d90-5017-56af-b056-d29d3cb46baa","alias":"trace_oa_mission_participant","name":"Mission involvement: Maintain safe water supply ↔ Mission involvement: Maintain safe water supply","description":"","oa":"0c4c9e58-ff32-5c00-b82a-d408a4be0183","sa":"1c1e5634-ba8c-591f-b143-90a27cdc6cd2","kind":"Manual","baseline":{"oa":{"name":"Mission involvement: Maintain safe water supply","description":""},"sa":{"name":"Mission involvement: Maintain safe water supply","description":""}}},"98ef05b5-5381-5d35-a433-ebab55e9f382":{"id":"98ef05b5-5381-5d35-a433-ebab55e9f382","alias":"trace_oa_reset_allocation","name":"Allocation: Reset valve remotely ↔ Allocation: Reset valve remotely","description":"","oa":"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a","sa":"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3","kind":"Manual","baseline":{"oa":{"name":"Allocation: Reset valve remotely","description":""},"sa":{"name":"Allocation: Reset valve remotely","description":""}}},"a106d183-c239-5c9f-b1f1-141af19fc778":{"id":"a106d183-c239-5c9f-b1f1-141af19fc778","alias":"trace_oa_confirm_path","name":"Continue ↔ Continue","description":"","oa":"229ee94f-d147-50f6-9769-b5bd0c03a084","sa":"1e738f27-a3a1-526d-b330-6384088b9689","kind":"Manual","baseline":{"oa":{"name":"Continue","description":""},"sa":{"name":"Continue","description":""}}},"a5c1eb01-a95f-5f7a-9742-7f201493d7aa":{"id":"a5c1eb01-a95f-5f7a-9742-7f201493d7aa","alias":"trace_oa_assess_then_decide","name":"Continue ↔ Continue","description":"","oa":"109e2d6b-7e86-5934-93a5-fab56eced84e","sa":"9d4a131f-36ad-5125-b21f-c3dd033b8c82","kind":"Manual","baseline":{"oa":{"name":"Continue","description":""},"sa":{"name":"Continue","description":""}}},"aa164208-394d-5bc7-8462-b0043f682aad":{"id":"aa164208-394d-5bc7-8462-b0043f682aad","alias":"trace_oa_mission_delivery","name":"Mission capability: Restore a safe supply ↔ Mission capability: Restore a safe supply","description":"","oa":"1f8b1898-65f6-5360-99cf-b78a71bd50ec","sa":"a0902e0f-3d18-576a-9aca-975a136dfdd7","kind":"Manual","baseline":{"oa":{"name":"Mission capability: Restore a safe supply","description":""},"sa":{"name":"Mission capability: Restore a safe supply","description":""}}},"aba528ea-e396-582a-bfba-f6e2212d391a":{"id":"aba528ea-e396-582a-bfba-f6e2212d391a","alias":"trace_oa_control","name":"Control room ↔ Pressure coordination service","description":"","oa":"32aa9940-df6e-5a12-b9bd-6337e2d2ed22","sa":"435bf87c-73fd-5e4d-978a-4c471bc9eaf0","kind":"Participant","baseline":{"oa":{"name":"Control room","description":""},"sa":{"name":"Pressure coordination service","description":""}}},"ac3aa6b0-568e-5a3f-963a-172aa3cfc7a4":{"id":"ac3aa6b0-568e-5a3f-963a-172aa3cfc7a4","alias":"trace_oa_repair_step","name":"Repair the valve ↔ Repair the valve","description":"","oa":"c59432fe-6092-5ee0-908d-9dbf39476471","sa":"0f195fea-3493-5ebd-966d-da9eddeb05d7","kind":"Sequence","baseline":{"oa":{"name":"Repair the valve","description":""},"sa":{"name":"Repair the valve","description":""}}},"acdbee9c-5017-5154-804e-50801f0376ec":{"id":"acdbee9c-5017-5154-804e-50801f0376ec","alias":"trace_oa_assess_allocation","name":"Allocation: Assess pressure alarm ↔ Allocation: Assess pressure alarm","description":"","oa":"594c61cd-94e0-5c07-890d-edfd520d7df9","sa":"9b9356d7-2db2-5a94-a47e-ea892cf02afe","kind":"Manual","baseline":{"oa":{"name":"Allocation: Assess pressure alarm","description":""},"sa":{"name":"Allocation: Assess pressure alarm","description":""}}},"ad697c00-07d9-5799-89b3-2c78da8dff4d":{"id":"ad697c00-07d9-5799-89b3-2c78da8dff4d","alias":"trace_oa_request_step","name":"Request the field repair ↔ Request the field repair","description":"","oa":"5ba8079c-2dbe-5e98-ae82-2b60c6020a02","sa":"40d94322-baa2-5c81-b261-ff47cdc33782","kind":"Sequence","baseline":{"oa":{"name":"Request the field repair","description":""},"sa":{"name":"Request the field repair","description":""}}},"b13452bb-1a55-5ad6-b6d9-a37fb34e8d13":{"id":"b13452bb-1a55-5ad6-b6d9-a37fb34e8d13","alias":"trace_oa_repair","name":"Repair valve in the field ↔ Repair valve in the field","description":"","oa":"a21465af-05f3-5fb5-8983-de26932422fb","sa":"9497e10f-04c4-5586-8738-2464a6f00bd4","kind":"Refinement","baseline":{"oa":{"name":"Repair valve in the field","description":""},"sa":{"name":"Repair valve in the field","description":""}}},"b53863a2-ed80-5f98-ad3c-50e1b821066d":{"id":"b53863a2-ed80-5f98-ad3c-50e1b821066d","alias":"trace_oa_monitor","name":"Pressure supervision ↔ Pressure supervision","description":"","oa":"1970608f-85d1-5234-ac86-5e2b0df27dc3","sa":"132b3f28-3f88-5327-9868-8c8b645ed412","kind":"State","baseline":{"oa":{"name":"Pressure supervision","description":""},"sa":{"name":"Pressure supervision","description":""}}},"b97749d4-f9ad-5fb7-9d78-bc60a74e98eb":{"id":"b97749d4-f9ad-5fb7-9d78-bc60a74e98eb","alias":"trace_oa_high_pressure","name":"Pressure alarm detected ↔ Pressure alarm detected","description":"","oa":"65d6b8d6-271a-5c84-8b42-abbe310c955e","sa":"01490fa8-2f01-5ac8-9722-d55d45414379","kind":"State","baseline":{"oa":{"name":"Pressure alarm detected","description":""},"sa":{"name":"Pressure alarm detected","description":""}}},"bb72b2c2-6e32-5f65-9d8e-b33c1a65da37":{"id":"bb72b2c2-6e32-5f65-9d8e-b33c1a65da37","alias":"trace_oa_field_procedure","name":"Field repair procedure ↔ Field repair procedure","description":"","oa":"5d3af417-244c-54bb-9588-16daedda4e1f","sa":"93eb6479-54e9-59cb-ac7b-16912347bfc0","kind":"Sequence","baseline":{"oa":{"name":"Field repair procedure","description":""},"sa":{"name":"Field repair procedure","description":""}}},"bbf6f1a1-cb2b-5632-8ec0-bf4b8ef1a941":{"id":"bbf6f1a1-cb2b-5632-8ec0-bf4b8ef1a941","alias":"trace_oa_decision","name":"Can a remote reset safely recover pressure? ↔ Can a remote reset safely recover pressure?","description":"","oa":"b280c6ca-e5f9-5424-a5c1-5676e01c2371","sa":"30c8fad9-a49b-5692-9542-3148e76afd7b","kind":"Sequence","baseline":{"oa":{"name":"Can a remote reset safely recover pressure?","description":""},"sa":{"name":"Can a remote reset safely recover pressure?","description":""}}},"c132a0df-1270-55a8-ac4e-6e5075823dc1":{"id":"c132a0df-1270-55a8-ac4e-6e5075823dc1","alias":"trace_oa_outer_technician","name":"Technician ↔ Technician","description":"","oa":"fffff882-78fd-5415-928d-c1ef7fac6576","sa":"155e4fe4-9e3b-5f4e-b886-28abcc3f086b","kind":"Scenario","baseline":{"oa":{"name":"Technician","description":""},"sa":{"name":"Technician","description":""}}},"c47cf0b4-fe15-5175-bd62-5292e43adc39":{"id":"c47cf0b4-fe15-5175-bd62-5292e43adc39","alias":"trace_oa_normal_transition","name":"State transition: Monitoring ↔ State transition: Monitoring","description":"","oa":"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97","sa":"6e2c1b47-764c-577a-b325-ff66dd2a2768","kind":"Manual","baseline":{"oa":{"name":"State transition: Monitoring","description":""},"sa":{"name":"State transition: Monitoring","description":""}}},"c5051628-b7af-5fb1-a014-bb60a0b46e03":{"id":"c5051628-b7af-5fb1-a014-bb60a0b46e03","alias":"trace_oa_responder","name":"Technician ↔ Technician","description":"","oa":"fc81c5f0-0442-5b88-992b-e5b10f351c59","sa":"6249b54a-e396-5338-82b9-89266c55670d","kind":"Scenario","baseline":{"oa":{"name":"Technician","description":""},"sa":{"name":"Technician","description":""}}},"c987bd0f-87f6-5550-945d-2a42450fe1c5":{"id":"c987bd0f-87f6-5550-945d-2a42450fe1c5","alias":"trace_oa_mission","name":"Maintain safe water supply ↔ Maintain safe water supply","description":"","oa":"c9c61f50-06e0-5d17-973d-dcc57cd5cc90","sa":"5ad034b1-084d-5273-9e70-971671766132","kind":"Mission","baseline":{"oa":{"name":"Maintain safe water supply","description":""},"sa":{"name":"Maintain safe water supply","description":""}}},"c9d65349-3400-58eb-8a55-57fa02de4b67":{"id":"c9d65349-3400-58eb-8a55-57fa02de4b67","alias":"trace_oa_contact","name":"Technician service conversation ↔ Technician service conversation","description":"","oa":"27b47887-baf0-518b-bf87-f5acbf7d0b93","sa":"63009b5f-539e-5914-b630-ec6b7fefb4d5","kind":"Exchange","baseline":{"oa":{"name":"Technician service conversation","description":""},"sa":{"name":"Technician service conversation","description":""}}},"cf92cedf-ea1a-510c-9bc5-89c16d60e8d2":{"id":"cf92cedf-ea1a-510c-9bc5-89c16d60e8d2","alias":"trace_oa_repair_operation","name":"Valve repair ↔ Valve repair","description":"","oa":"d736c7d6-d369-550a-8ba4-dae223e40bb3","sa":"a962fc5e-3ab0-5296-8b0d-fd84633f9218","kind":"Item","baseline":{"oa":{"name":"Valve repair","description":""},"sa":{"name":"Valve repair","description":""}}},"d32dd433-9c9e-5b57-9355-2970cc44a5f2":{"id":"d32dd433-9c9e-5b57-9355-2970cc44a5f2","alias":"trace_oa_field_merge","name":"Continue ↔ Continue","description":"","oa":"c8593670-8906-530f-b6a2-3ada77a9c219","sa":"0f6ac3fb-4ad6-581e-ad14-336472072d5e","kind":"Manual","baseline":{"oa":{"name":"Continue","description":""},"sa":{"name":"Continue","description":""}}},"d3626818-4846-5893-9c02-3407cdba7f3c":{"id":"d3626818-4846-5893-9c02-3407cdba7f3c","alias":"trace_oa_response","name":"Handle a pressure alarm ↔ Handle a pressure alarm","description":"","oa":"58bae2b0-f560-50f2-818d-19091d22d18a","sa":"5139ce73-56fd-5875-ba3a-e569fc890231","kind":"Sequence","baseline":{"oa":{"name":"Handle a pressure alarm","description":""},"sa":{"name":"Handle a pressure alarm","description":""}}},"d47d3c36-50fb-5189-b801-d6fd1694bd49":{"id":"d47d3c36-50fb-5189-b801-d6fd1694bd49","alias":"trace_oa_technician","name":"Field technician ↔ Field technician","description":"","oa":"e07c3952-4a1a-5cc7-b7d5-03a01101ce49","sa":"c05b9422-b9da-5de5-b21d-07ad23bd2b8a","kind":"Participant","baseline":{"oa":{"name":"Field technician","description":""},"sa":{"name":"Field technician","description":""}}},"d7773ff5-cef5-50c1-8f9d-c5659115e1f0":{"id":"d7773ff5-cef5-50c1-8f9d-c5659115e1f0","alias":"trace_oa_confirm","name":"Confirm safe pressure ↔ Confirm safe pressure","description":"","oa":"727c0b5c-8db6-5eb7-83d6-735519c5949f","sa":"d75eb3fa-a27d-52d5-8782-8b342b3865f6","kind":"Refinement","baseline":{"oa":{"name":"Confirm safe pressure","description":""},"sa":{"name":"Confirm safe pressure","description":""}}},"d9d47371-e98d-5d29-9df7-4de2d28a5c73":{"id":"d9d47371-e98d-5d29-9df7-4de2d28a5c73","alias":"trace_oa_pressure","name":"Measured pressure ↔ Measured pressure","description":"","oa":"e7824764-5db9-5384-8198-2fbaea2b10b2","sa":"87d0a95b-af1b-5352-b753-e4c6533671a5","kind":"Item","baseline":{"oa":{"name":"Measured pressure","description":""},"sa":{"name":"Measured pressure","description":""}}},"da8efc3c-78df-5b10-b2e5-1e28d6d99e86":{"id":"da8efc3c-78df-5b10-b2e5-1e28d6d99e86","alias":"trace_oa_repair_request","name":"Request field repair ↔ Request field repair","description":"","oa":"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d","sa":"93474111-f23e-56c1-b61b-b7c2396b91bd","kind":"Exchange","baseline":{"oa":{"name":"Request field repair","description":""},"sa":{"name":"Request field repair","description":""}}},"e63b14d2-f408-56a2-aec4-be20cf4ace73":{"id":"e63b14d2-f408-56a2-aec4-be20cf4ace73","alias":"trace_oa_report_step","name":"Report the measured result ↔ Report the measured result","description":"","oa":"df2fd3f8-6bc2-5380-a13f-36643ed35ac7","sa":"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac","kind":"Sequence","baseline":{"oa":{"name":"Report the measured result","description":""},"sa":{"name":"Report the measured result","description":""}}},"e848da41-445e-5e3c-8b4e-ef53fdddf1e1":{"id":"e848da41-445e-5e3c-8b4e-ef53fdddf1e1","alias":"trace_oa_assess_step","name":"Assess the alarm ↔ Assess the alarm","description":"","oa":"0b07b9ed-492d-57f6-b0b1-ce8a709238a7","sa":"9024243c-ccc1-5edb-8477-2aa16e5e9a50","kind":"Sequence","baseline":{"oa":{"name":"Assess the alarm","description":""},"sa":{"name":"Assess the alarm","description":""}}},"e96ff119-bb4d-5fd9-9ab7-2ede0d3fd418":{"id":"e96ff119-bb4d-5fd9-9ab7-2ede0d3fd418","alias":"trace_oa_contact_category","name":"Field contact ↔ Field contact","description":"","oa":"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771","sa":"781cbe75-410f-5cc5-aeb8-a43491f77b99","kind":"Manual","baseline":{"oa":{"name":"Field contact","description":""},"sa":{"name":"Field contact","description":""}}},"eee79ec1-41d7-5374-986e-995a56b9026f":{"id":"eee79ec1-41d7-5374-986e-995a56b9026f","alias":"trace_oa_remote_path","name":"remote reset is authorized ↔ remote reset is authorized","description":"","oa":"76218d89-68fd-531d-b35b-90c5b769a5ef","sa":"d8b6710a-e713-5979-934f-e5ca7d155bb4","kind":"Manual","baseline":{"oa":{"name":"remote reset is authorized","description":""},"sa":{"name":"remote reset is authorized","description":""}}},"f0cc86e5-f8fd-5091-a40d-dbfb6515072f":{"id":"f0cc86e5-f8fd-5091-a40d-dbfb6515072f","alias":"trace_oa_call","name":"Request valve repair ↔ Request valve repair","description":"","oa":"b97437c6-cd7a-5a05-b537-b30a17dd936a","sa":"8bab4783-a098-5984-9e36-493957caf26c","kind":"Scenario","baseline":{"oa":{"name":"Request valve repair","description":""},"sa":{"name":"Request valve repair","description":""}}},"f2b7050c-629d-533f-b873-bffc33e072f7":{"id":"f2b7050c-629d-533f-b873-bffc33e072f7","alias":"trace_oa_request_then_repair","name":"Sequence link: Repair the valve ↔ Sequence link: Repair the valve","description":"","oa":"3f54d890-4ca5-5e36-873b-abb5c92d578c","sa":"6a6d968f-26d6-5dbb-b721-5a27d362779a","kind":"Manual","baseline":{"oa":{"name":"Sequence link: Repair the valve","description":""},"sa":{"name":"Sequence link: Repair the valve","description":""}}},"f5733d3f-eee3-5cf7-a422-5edd2054d6a6":{"id":"f5733d3f-eee3-5cf7-a422-5edd2054d6a6","alias":"trace_oa_use_conversation","name":"Use the reviewed repair conversation ↔ Use the reviewed repair conversation","description":"","oa":"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5","sa":"1c9da843-e2d3-5591-8e3f-db083a42867e","kind":"Scenario","baseline":{"oa":{"name":"Use the reviewed repair conversation","description":""},"sa":{"name":"Use the reviewed repair conversation","description":""}}},"f8d34715-1dc8-504b-acdf-78b770aad1e8":{"id":"f8d34715-1dc8-504b-acdf-78b770aad1e8","alias":"trace_oa_repair_then_report","name":"Sequence link: Report the measured result ↔ Sequence link: Report the measured result","description":"","oa":"c8196d35-2168-5fef-8b03-ba0d139bc00f","sa":"7fb30b1d-195c-5f0e-a19c-a536f519a899","kind":"Manual","baseline":{"oa":{"name":"Sequence link: Report the measured result","description":""},"sa":{"name":"Sequence link: Report the measured result","description":""}}},"fb02420d-b066-5773-87c1-198a056e0731":{"id":"fb02420d-b066-5773-87c1-198a056e0731","alias":"trace_oa_assess_on_entry","name":"Assess when repair is needed ↔ Assess when repair is needed","description":"","oa":"7fa37e63-db65-5aa7-88f2-31ff4347a787","sa":"a887f96a-37cb-5891-8070-011fa276e5b5","kind":"Manual","baseline":{"oa":{"name":"Assess when repair is needed","description":""},"sa":{"name":"Assess when repair is needed","description":""}}},"fd195498-dbba-523b-94d0-49f3b9531a3e":{"id":"fd195498-dbba-523b-94d0-49f3b9531a3e","alias":"trace_oa_outer_controller","name":"Controller ↔ Controller","description":"","oa":"2011b3ac-614b-5a47-8891-7ff81965f425","sa":"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023","kind":"Scenario","baseline":{"oa":{"name":"Controller","description":""},"sa":{"name":"Controller","description":""}}},"ff84fc06-6f99-5cf3-b73d-236e9eff98a3":{"id":"ff84fc06-6f99-5cf3-b73d-236e9eff98a3","alias":"trace_oa_reset_step","name":"Try the authorized remote reset ↔ Try the authorized remote reset","description":"","oa":"d2026fc2-74a8-5e22-9942-ff3eb68a3677","sa":"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6","kind":"Sequence","baseline":{"oa":{"name":"Try the authorized remote reset","description":""},"sa":{"name":"Try the authorized remote reset","description":""}}}}},"source_project":{"entry":"qa-saved.arcadia","files":{"oa/activities/activity_oa_restore_work.arcadia":"oa_activity oa_restore_work \"Restore safe pressure\" id \"1b91f8a7-0bdb-514e-b1cd-955658e09927\" {\n}\n\noa_activity oa_assess \"Assess pressure alarm QA LEFT XYRIGHT\" id \"61f7bbfb-74a4-5540-9182-2583dfb27a49\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_confirm \"Confirm safe pressure\" id \"727c0b5c-8db6-5eb7-83d6-735519c5949f\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_repair \"Repair valve in the field\" id \"a21465af-05f3-5fb5-8983-de26932422fb\" {\n parent @oa_restore_work;\n}\n\noa_activity oa_reset \"Reset valve remotely\" id \"d0c8be87-d238-503a-a549-7558a210507f\" {\n parent @oa_restore_work;\n}\n\ncapability_involvement oa_assessment_support \"Capability involvement: Assess an alarm\" id \"ffdbfcd0-d423-5707-a880-0dfbe1400f72\" {\n source @oa_assess;\n target @oa_triage;\n}\n\ninteraction oa_repair_request \"Request field repair\" id \"cf423ea2-8b2e-5a27-93d4-5e8542d9db8d\" {\n items [@oa_repair_operation];\n source @oa_assess;\n target @oa_repair;\n}\n\ninteraction oa_repair_report \"Report repair result\" id \"b436d0b3-c824-5a96-af6b-2c269816d1cc\" {\n items [@oa_repair_operation];\n source @oa_repair;\n target @oa_confirm;\n}\n\n","oa/behavior/process_oa_assessment_procedure.arcadia":"oa_process oa_assessment_procedure \"Assess an alarm procedure\" id \"022d3cfa-bbaf-5e13-924a-8e55099b8745\" {\n steps [@oa_assessment_action];\n}\n\noa_occurrence oa_assessment_action \"Assess pressure alarm\" id \"942975b8-0bef-5ae8-9fcb-c37497833fb0\" {\n body {\n Action {\n action @oa_assess;\n };\n };\n parent @oa_assessment_procedure;\n}\n\nchain_involvement oa_assessment_delivery \"Chain involvement: Assess an alarm\" id \"628cb4fc-fe63-5f6b-b364-6268f26b5740\" {\n source @oa_assessment_procedure;\n target @oa_triage;\n}\n\n","oa/behavior/process_oa_field_procedure.arcadia":"oa_process oa_field_procedure \"Field repair procedure\" id \"5d3af417-244c-54bb-9588-16daedda4e1f\" {\n steps [@oa_request_step, @oa_repair_step, @oa_report_step];\n}\n\noa_occurrence oa_repair_step \"Repair the valve\" id \"c59432fe-6092-5ee0-908d-9dbf39476471\" {\n body {\n Action {\n action @oa_repair;\n };\n };\n parent @oa_field_procedure;\n}\n\noa_occurrence oa_report_step \"Report the measured result\" id \"df2fd3f8-6bc2-5380-a13f-36643ed35ac7\" {\n body {\n Exchange {\n exchange @oa_repair_report;\n };\n };\n parent @oa_field_procedure;\n}\n\noa_occurrence oa_request_step \"Request the field repair\" id \"5ba8079c-2dbe-5e98-ae82-2b60c6020a02\" {\n body {\n Exchange {\n exchange @oa_repair_request;\n };\n };\n parent @oa_field_procedure;\n}\n\nsequence_link oa_repair_then_report \"Sequence link: Report the measured result\" id \"c8196d35-2168-5fef-8b03-ba0d139bc00f\" {\n source @oa_repair_step;\n target @oa_report_step;\n}\n\nsequence_link oa_request_then_repair \"Sequence link: Repair the valve\" id \"3f54d890-4ca5-5e36-873b-abb5c92d578c\" {\n source @oa_request_step;\n target @oa_repair_step;\n}\n\n","oa/behavior/process_oa_response.arcadia":"oa_process oa_response \"Handle a pressure alarm\" id \"58bae2b0-f560-50f2-818d-19091d22d18a\" {\n steps [@oa_assess_step, @oa_decision, @oa_reset_step, @oa_use_field, @oa_merge, @oa_confirm_step];\n}\n\noa_occurrence oa_assess_step \"Assess the alarm\" id \"0b07b9ed-492d-57f6-b0b1-ce8a709238a7\" {\n body {\n SequenceReference {\n sequence @oa_assessment_procedure;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_confirm_step \"Confirm safe pressure\" id \"e00594a3-6122-5a6b-b3c2-ecb5506c741d\" {\n body {\n Action {\n action @oa_confirm;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_decision \"Can a remote reset safely recover pressure?\" id \"b280c6ca-e5f9-5424-a5c1-5676e01c2371\" {\n body {\n Control {\n kind Choice;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_merge \"Recovery path completed\" id \"6b945a6d-6aa0-5dd3-96e6-2e8d757d167d\" {\n body {\n Control {\n kind Merge;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_reset_step \"Try the authorized remote reset\" id \"d2026fc2-74a8-5e22-9942-ff3eb68a3677\" {\n body {\n Action {\n action @oa_reset;\n };\n };\n parent @oa_response;\n}\n\noa_occurrence oa_use_field \"Use the field repair procedure\" id \"fc6763bf-a534-54bf-afcd-57ab285ff07d\" {\n body {\n SequenceReference {\n sequence @oa_field_procedure;\n };\n };\n parent @oa_response;\n}\n\nsequence_link oa_assess_then_decide \"Continue\" id \"109e2d6b-7e86-5934-93a5-fab56eced84e\" {\n source @oa_assess_step;\n target @oa_decision;\n}\n\nsequence_link oa_field_path \"else\" id \"c1adbbd0-a762-5ee3-8b9a-5c18af377771\" {\n guard \"else\";\n source @oa_decision;\n target @oa_use_field;\n}\n\nsequence_link oa_remote_path \"remote reset is authorized\" id \"76218d89-68fd-531d-b35b-90c5b769a5ef\" {\n guard \"remote reset is authorized\";\n source @oa_decision;\n target @oa_reset_step;\n}\n\nsequence_link oa_confirm_path \"Continue\" id \"229ee94f-d147-50f6-9769-b5bd0c03a084\" {\n source @oa_merge;\n target @oa_confirm_step;\n}\n\nsequence_link oa_remote_merge \"Continue\" id \"bac43d3b-910b-5bdc-be9b-f78cf973e1ed\" {\n source @oa_reset_step;\n target @oa_merge;\n}\n\nchain_involvement oa_response_delivery \"Chain involvement: Restore a safe supply\" id \"c7c248f8-28b8-55be-9023-0991d44021e3\" {\n source @oa_response;\n target @oa_restore;\n}\n\nsequence_link oa_field_merge \"Continue\" id \"c8593670-8906-530f-b6a2-3ada77a9c219\" {\n source @oa_use_field;\n target @oa_merge;\n}\n\n","oa/behavior/scenario_oa_conversation.arcadia":"oa_scenario oa_conversation \"Repair request and measured reply\" id \"20472233-5ce6-5ffe-b4ad-0bdbccf3e423\" {\n context @oa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@oa_call, @oa_reply];\n viewpoint ParticipantInteraction;\n}\n\noa_occurrence oa_call \"Request valve repair\" id \"b97437c6-cd7a-5a05-b537-b30a17dd936a\" {\n body {\n Exchange {\n exchange @oa_contact;\n message_kind Call;\n receiver @oa_responder;\n sender @oa_caller;\n values [{\n expression \"420.0\";\n field @oa_pressure_parameter;\n }];\n };\n };\n parent @oa_conversation;\n}\n\noa_lifeline oa_caller \"Controller\" id \"41859a65-ded2-547b-ab03-14e2fa740cf9\" {\n parent @oa_conversation;\n represented @oa_control;\n}\n\noa_occurrence oa_reply \"Return pressure after repair\" id \"cc2d497a-fd15-5455-9ee5-e70eb95811d8\" {\n body {\n Exchange {\n exchange @oa_contact;\n message_kind Reply;\n receiver @oa_caller;\n reply_to @oa_call;\n sender @oa_responder;\n values [{\n expression \"320.0\";\n field @oa_pressure_parameter;\n }];\n };\n };\n parent @oa_conversation;\n}\n\noa_lifeline oa_responder \"Technician\" id \"fc81c5f0-0442-5b88-992b-e5b10f351c59\" {\n parent @oa_conversation;\n represented @oa_technician;\n}\n\n","oa/behavior/scenario_oa_full_scenario.arcadia":"oa_scenario oa_full_scenario \"Restore supply through field repair\" id \"d6f881a4-95da-54e9-ad97-1b8965532629\" {\n context @oa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@oa_use_conversation];\n viewpoint ParticipantInteraction;\n}\n\noa_lifeline oa_outer_controller \"Controller\" id \"2011b3ac-614b-5a47-8891-7ff81965f425\" {\n parent @oa_full_scenario;\n represented @oa_control;\n}\n\noa_lifeline oa_outer_technician \"Technician\" id \"fffff882-78fd-5415-928d-c1ef7fac6576\" {\n parent @oa_full_scenario;\n represented @oa_technician;\n}\n\noa_occurrence oa_use_conversation \"Use the reviewed repair conversation\" id \"9ff94014-afa1-50ab-a4d3-8e9dd0565cc5\" {\n body {\n ScenarioUse {\n bindings [{\n local @oa_outer_controller;\n referenced @oa_caller;\n }, {\n local @oa_outer_technician;\n referenced @oa_responder;\n }];\n scenario @oa_conversation;\n };\n };\n parent @oa_full_scenario;\n}\n\n","oa/behavior/state_machine_oa_monitor.arcadia":"oa_state_machine oa_monitor \"Pressure supervision\" id \"1970608f-85d1-5234-ac86-5e2b0df27dc3\" {\n parent @oa_control;\n}\n\noa_region oa_monitor_region \"Supervision cycle\" id \"8412e9c6-96fe-5ed6-a903-1d37ec3c3bf7\" {\n parent @oa_monitor;\n}\n\noa_initial oa_monitor_initial \"Start\" id \"a7ffb869-9dde-5e76-b276-c719c5c143a9\" {\n parent @oa_monitor_region;\n}\n\noa_state oa_monitoring \"Monitoring\" id \"6cbde0d8-9f5f-510a-a8c1-e29cb99ad4ae\" {\n parent @oa_monitor_region;\n}\n\noa_state oa_waiting \"Awaiting repair\" id \"58c15833-6e75-523a-b57f-a88f19f6d672\" {\n parent @oa_monitor_region;\n}\n\nstate_transition oa_start_monitoring \"State transition: Monitoring\" id \"2b00270c-79a5-52a5-af96-33346bea531b\" {\n source @oa_monitor_initial;\n target @oa_monitoring;\n}\n\nstate_transition oa_alarm_transition \"State transition: Awaiting repair\" id \"fbde9d5e-c7e9-55db-a2be-497345c491b3\" {\n source @oa_monitoring;\n target @oa_waiting;\n triggers [@oa_high_pressure];\n}\n\nstate_action oa_assess_on_entry \"Assess when repair is needed\" id \"7fa37e63-db65-5aa7-88f2-31ff4347a787\" {\n phase Entry;\n source @oa_waiting;\n target @oa_assess;\n}\n\nstate_transition oa_normal_transition \"State transition: Monitoring\" id \"21fe5e8e-cbc2-5dad-b3e8-1df46e167d97\" {\n guard \"repair confirmed and pressure is safe\";\n source @oa_waiting;\n target @oa_monitoring;\n}\n\n","oa/capabilities.arcadia":"oa_mission oa_mission \"Maintain safe water supply\" id \"c9c61f50-06e0-5d17-973d-dcc57cd5cc90\" {\n}\n\noa_capability oa_restore \"Restore a safe supply\" id \"3dfee23a-148b-5cec-ad2d-b774e84ea5bb\" {\n}\n\noa_capability oa_triage \"Assess an alarm\" id \"6a30b763-cc51-546d-907f-5c63657cfd03\" {\n}\n\nmission_capability oa_mission_delivery \"Mission capability: Restore a safe supply\" id \"1f8b1898-65f6-5360-99cf-b78a71bd50ec\" {\n source @oa_mission;\n target @oa_restore;\n}\n\ncapability_include oa_include_triage \"Capability include: Assess an alarm\" id \"e21d9a54-ae8e-5618-a4f8-67ee22b92638\" {\n source @oa_restore;\n target @oa_triage;\n}\n\n","oa/model.arcadia":"oa_exchange_category oa_contact_category \"Field contact\" id \"19bd3a3a-4d0c-56d5-bf50-a6b43fd81771\" {\n exchanges [@oa_contact];\n family \"Participant\";\n}\n\noa_event oa_high_pressure \"Pressure alarm detected\" id \"65d6b8d6-271a-5c84-8b42-abbe310c955e\" {\n body {\n Change {\n expression \"measured_pressure > operating_limit\";\n };\n };\n}\n\noa_exchange_category oa_repair_traffic \"Repair work exchanges\" id \"9349b353-53f2-56f8-b571-a05b09335cdf\" {\n exchanges [@oa_repair_request, @oa_repair_report];\n}\n\n","oa/participants.arcadia":"oa_entity oa_control \"Control room\" id \"32aa9940-df6e-5a12-b9bd-6337e2d2ed22\" {\n}\n\noa_actor oa_technician \"Field technician\" id \"e07c3952-4a1a-5cc7-b7d5-03a01101ce49\" {\n}\n\nallocation oa_assess_allocation \"Allocation: Assess pressure alarm\" id \"594c61cd-94e0-5c07-890d-edfd520d7df9\" {\n source @oa_control;\n target @oa_assess;\n}\n\nallocation oa_confirm_allocation \"Allocation: Confirm safe pressure\" id \"bfd4326e-ea65-5269-b5e6-e063a355d1e9\" {\n source @oa_control;\n target @oa_confirm;\n}\n\ncommunication_mean oa_contact \"Technician service conversation\" id \"27b47887-baf0-518b-bf87-f5acbf7d0b93\" {\n items [@oa_repair_operation];\n source @oa_control;\n target @oa_technician;\n}\n\nexchange_allocation oa_report_carriage \"Exchange allocation: Report repair result\" id \"4549d3fa-5ab9-52a9-b4f9-3a78fc9d625a\" {\n source @oa_contact;\n target @oa_repair_report;\n}\n\nexchange_allocation oa_request_carriage \"Exchange allocation: Request field repair\" id \"094b888c-450c-5c4f-971a-7d75db059574\" {\n source @oa_contact;\n target @oa_repair_request;\n}\n\nmission_involvement oa_mission_participant \"Mission involvement: Maintain safe water supply\" id \"0c4c9e58-ff32-5c00-b82a-d408a4be0183\" {\n source @oa_control;\n target @oa_mission;\n}\n\nallocation oa_reset_allocation \"Allocation: Reset valve remotely\" id \"1853df1f-30f4-5b1a-baac-2dcaf73c7b3a\" {\n source @oa_control;\n target @oa_reset;\n}\n\nallocation oa_repair_allocation \"Allocation: Repair valve in the field\" id \"ae53f363-0dec-5a7c-9afd-8fcd1b778ab2\" {\n source @oa_technician;\n target @oa_repair;\n}\n\n","oa/types.arcadia":"oa_data_type oa_pressure \"Measured pressure\" id \"e7824764-5db9-5384-8198-2fbaea2b10b2\" {\n definition {\n Real {\n maximum 600.0;\n minimum 0.0;\n };\n };\n unit \"kPa\";\n}\n\noa_exchange_item oa_repair_operation \"Valve repair\" id \"d736c7d6-d369-550a-8ba4-dae223e40bb3\" {\n mechanism Operation;\n}\n\noa_data_field oa_pressure_parameter \"Pressure before / after repair\" id \"8bc6d0a4-3e87-559b-8bd7-1b679a2db5b7\" {\n direction InOut;\n parent @oa_repair_operation;\n type_ref {\n Named @oa_pressure;\n };\n}\n\n","qa-saved.arcadia":"arcadia 7;\nproject pressure_restoration \"Restore safe water pressure — release 1 walkthrough\" id \"2786d72f-5763-5f33-a57f-2773a4ca1a6c\" {\n description \"A controller either resets a valve remotely or requests field repair. Compare the operational need with the explicitly chosen coordination-service boundary. Start with README.md beside project.arcadia. Units and guards are descriptive; this model does not simulate a real water network.\";\n include \"oa/activities/activity_oa_restore_work.arcadia\";\n include \"oa/behavior/process_oa_assessment_procedure.arcadia\";\n include \"oa/behavior/process_oa_field_procedure.arcadia\";\n include \"oa/behavior/process_oa_response.arcadia\";\n include \"oa/behavior/scenario_oa_conversation.arcadia\";\n include \"oa/behavior/scenario_oa_full_scenario.arcadia\";\n include \"oa/behavior/state_machine_oa_monitor.arcadia\";\n include \"oa/capabilities.arcadia\";\n include \"oa/model.arcadia\";\n include \"oa/participants.arcadia\";\n include \"oa/types.arcadia\";\n include \"sa/behavior/process_sa_assessment_procedure.arcadia\";\n include \"sa/behavior/process_sa_field_procedure.arcadia\";\n include \"sa/behavior/process_sa_response.arcadia\";\n include \"sa/behavior/scenario_sa_conversation.arcadia\";\n include \"sa/behavior/scenario_sa_full_scenario.arcadia\";\n include \"sa/behavior/state_machine_sa_monitor.arcadia\";\n include \"sa/capabilities.arcadia\";\n include \"sa/functions/function_sa_audit_thresholds.arcadia\";\n include \"sa/functions/function_sa_restore_work.arcadia\";\n include \"sa/model.arcadia\";\n include \"sa/participants.arcadia\";\n include \"sa/types.arcadia\";\n include \"traceability.arcadia\";\n include \"views/diagram_oa_allocation_view.arcadia\";\n include \"views/diagram_sa_allocation_view.arcadia\";\n include \"views/diagram_sa_capability_view.arcadia\";\n include \"views/diagram_sa_service_view.arcadia\";\n include \"views/diagram_sa_state_view.arcadia\";\n}\n","sa/behavior/process_sa_assessment_procedure.arcadia":"sa_functional_chain sa_assessment_procedure \"Assess an alarm procedure\" id \"acd5a018-f559-5298-a40d-1cf6e1353e74\" {\n steps [@sa_assessment_action];\n}\n\nsa_occurrence sa_assessment_action \"Assess pressure alarm\" id \"bae5b192-5b8e-51c6-82ae-2331af0d33bf\" {\n body {\n Action {\n action @sa_assess;\n };\n };\n parent @sa_assessment_procedure;\n}\n\nchain_involvement sa_assessment_delivery \"Chain involvement: Assess an alarm\" id \"a6d5a6be-fa6e-5fa0-a309-08e87ba40c57\" {\n source @sa_assessment_procedure;\n target @sa_triage;\n}\n\n","sa/behavior/process_sa_field_procedure.arcadia":"sa_functional_chain sa_field_procedure \"Field repair procedure\" id \"93eb6479-54e9-59cb-ac7b-16912347bfc0\" {\n steps [@sa_request_step, @sa_repair_step, @sa_report_step];\n}\n\nsa_occurrence sa_repair_step \"Repair the valve\" id \"0f195fea-3493-5ebd-966d-da9eddeb05d7\" {\n body {\n Action {\n action @sa_repair;\n };\n };\n parent @sa_field_procedure;\n}\n\nsa_occurrence sa_report_step \"Report the measured result\" id \"ea32e4ec-8bdc-57ea-8a90-7b09ba4f0eac\" {\n body {\n Exchange {\n exchange @sa_repair_report;\n };\n };\n parent @sa_field_procedure;\n}\n\nsa_occurrence sa_request_step \"Request the field repair\" id \"40d94322-baa2-5c81-b261-ff47cdc33782\" {\n body {\n Exchange {\n exchange @sa_repair_request;\n };\n };\n parent @sa_field_procedure;\n}\n\nsequence_link sa_repair_then_report \"Sequence link: Report the measured result\" id \"7fb30b1d-195c-5f0e-a19c-a536f519a899\" {\n source @sa_repair_step;\n target @sa_report_step;\n}\n\nsequence_link sa_request_then_repair \"Sequence link: Repair the valve\" id \"6a6d968f-26d6-5dbb-b721-5a27d362779a\" {\n source @sa_request_step;\n target @sa_repair_step;\n}\n\n","sa/behavior/process_sa_response.arcadia":"sa_functional_chain sa_response \"Handle a pressure alarm\" id \"5139ce73-56fd-5875-ba3a-e569fc890231\" {\n steps [@sa_assess_step, @sa_decision, @sa_reset_step, @sa_use_field, @sa_merge, @sa_confirm_step];\n}\n\nsa_occurrence sa_assess_step \"Assess the alarm\" id \"9024243c-ccc1-5edb-8477-2aa16e5e9a50\" {\n body {\n SequenceReference {\n sequence @sa_assessment_procedure;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_confirm_step \"Confirm safe pressure\" id \"47bec4f9-d6d0-5ed1-adca-fa0d960dc416\" {\n body {\n Action {\n action @sa_confirm;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_decision \"Can a remote reset safely recover pressure?\" id \"30c8fad9-a49b-5692-9542-3148e76afd7b\" {\n body {\n Control {\n kind Choice;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_merge \"Recovery path completed\" id \"4ed0dd9d-c9e0-5652-aedf-5f0ab4328a07\" {\n body {\n Control {\n kind Merge;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_reset_step \"Try the authorized remote reset\" id \"bfa2ef0b-ce68-55c2-a9e5-31ea8a74fce6\" {\n body {\n Action {\n action @sa_reset;\n };\n };\n parent @sa_response;\n}\n\nsa_occurrence sa_use_field \"Use the field repair procedure\" id \"d5e61c5d-510b-5091-a878-da46f3a9e152\" {\n body {\n SequenceReference {\n sequence @sa_field_procedure;\n };\n };\n parent @sa_response;\n}\n\nsequence_link sa_assess_then_decide \"Continue\" id \"9d4a131f-36ad-5125-b21f-c3dd033b8c82\" {\n source @sa_assess_step;\n target @sa_decision;\n}\n\nsequence_link sa_field_path \"else\" id \"1bbd5957-1173-51d8-97e3-ba4f084227ae\" {\n guard \"else\";\n source @sa_decision;\n target @sa_use_field;\n}\n\nsequence_link sa_remote_path \"remote reset is authorized\" id \"d8b6710a-e713-5979-934f-e5ca7d155bb4\" {\n guard \"remote reset is authorized\";\n source @sa_decision;\n target @sa_reset_step;\n}\n\nsequence_link sa_confirm_path \"Continue\" id \"1e738f27-a3a1-526d-b330-6384088b9689\" {\n source @sa_merge;\n target @sa_confirm_step;\n}\n\nsequence_link sa_remote_merge \"Continue\" id \"e5279265-8eac-52e8-98dc-571b20475e1f\" {\n source @sa_reset_step;\n target @sa_merge;\n}\n\nchain_involvement sa_response_delivery \"Chain involvement: Restore a safe supply\" id \"66efc484-53c7-51a3-89e9-422429344b38\" {\n source @sa_response;\n target @sa_restore;\n}\n\nsequence_link sa_field_merge \"Continue\" id \"0f6ac3fb-4ad6-581e-ad14-336472072d5e\" {\n source @sa_use_field;\n target @sa_merge;\n}\n\n","sa/behavior/scenario_sa_conversation.arcadia":"sa_scenario sa_conversation \"Repair request and measured reply\" id \"730b27ca-b039-5a3b-8dc6-03418f9061b3\" {\n context @sa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@sa_call, @sa_reply];\n viewpoint BoundaryInterface;\n}\n\nsa_occurrence sa_call \"Request valve repair\" id \"8bab4783-a098-5984-9e36-493957caf26c\" {\n body {\n Exchange {\n exchange @sa_contact;\n message_kind Call;\n receiver @sa_responder;\n sender @sa_caller;\n values [{\n expression \"420.0\";\n field @sa_pressure_parameter;\n }];\n };\n };\n parent @sa_conversation;\n}\n\nsa_lifeline sa_caller \"Controller\" id \"98c61788-2fee-51f4-8cf9-de48e8c70e9e\" {\n parent @sa_conversation;\n represented @sa_control;\n}\n\nsa_occurrence sa_reply \"Return pressure after repair\" id \"4e1c0a56-ce80-5f13-a93a-6956de54880c\" {\n body {\n Exchange {\n exchange @sa_contact;\n message_kind Reply;\n receiver @sa_caller;\n reply_to @sa_call;\n sender @sa_responder;\n values [{\n expression \"320.0\";\n field @sa_pressure_parameter;\n }];\n };\n };\n parent @sa_conversation;\n}\n\nsa_lifeline sa_responder \"Technician\" id \"6249b54a-e396-5338-82b9-89266c55670d\" {\n parent @sa_conversation;\n represented @sa_technician;\n}\n\nartifact repair_test_evidence \"Repair conversation acceptance notes\" id \"f5922bf7-05d8-590f-86e9-1d09f37f4fa6\" {\n description \"A local teaching artifact, not proof of a real valve's safety.\";\n fragment \"acceptance\";\n owner @sa_conversation;\n relation Verifies;\n revision \"lesson-1\";\n uri \"evidence/repair-check.md\";\n}\n\n","sa/behavior/scenario_sa_full_scenario.arcadia":"sa_scenario sa_full_scenario \"Restore supply through field repair\" id \"f746a1cd-ff9f-55c0-b325-01c03d2f4fae\" {\n context @sa_restore;\n postcondition \"The controller has received the measured pressure after repair\";\n precondition \"A pressure alarm has been assessed\";\n steps [@sa_use_conversation];\n viewpoint BoundaryInterface;\n}\n\nsa_lifeline sa_outer_controller \"Controller\" id \"1edfcf9e-9bfa-51f1-80d5-62b8fd8bb023\" {\n parent @sa_full_scenario;\n represented @sa_control;\n}\n\nsa_lifeline sa_outer_technician \"Technician\" id \"155e4fe4-9e3b-5f4e-b886-28abcc3f086b\" {\n parent @sa_full_scenario;\n represented @sa_technician;\n}\n\nsa_occurrence sa_use_conversation \"Use the reviewed repair conversation\" id \"1c9da843-e2d3-5591-8e3f-db083a42867e\" {\n body {\n ScenarioUse {\n bindings [{\n local @sa_outer_controller;\n referenced @sa_caller;\n }, {\n local @sa_outer_technician;\n referenced @sa_responder;\n }];\n scenario @sa_conversation;\n };\n };\n parent @sa_full_scenario;\n}\n\n","sa/behavior/state_machine_sa_monitor.arcadia":"sa_state_machine sa_monitor \"Pressure supervision\" id \"132b3f28-3f88-5327-9868-8c8b645ed412\" {\n parent @sa_control;\n}\n\nsa_region sa_monitor_region \"Supervision cycle\" id \"3ab11e24-4140-58fc-b3fa-da5f51c7fe2c\" {\n parent @sa_monitor;\n}\n\nsa_initial sa_monitor_initial \"Start\" id \"57eb5348-14d8-560e-996a-8dbf993243e2\" {\n parent @sa_monitor_region;\n}\n\nsa_state sa_monitoring \"Monitoring\" id \"8af21f9b-c21e-5aae-af0d-0958840f6655\" {\n parent @sa_monitor_region;\n}\n\nsa_state sa_waiting \"Awaiting repair\" id \"a6bb10b1-f1e5-5b31-8afd-5bad5a7b6c37\" {\n parent @sa_monitor_region;\n}\n\nstate_transition sa_start_monitoring \"State transition: Monitoring\" id \"47730532-0372-5cc5-9d6d-0b8953aebdd8\" {\n source @sa_monitor_initial;\n target @sa_monitoring;\n}\n\nstate_transition sa_alarm_transition \"State transition: Awaiting repair\" id \"13c3bfa4-9254-5ab2-b96f-f65f402adf81\" {\n source @sa_monitoring;\n target @sa_waiting;\n triggers [@sa_high_pressure];\n}\n\nstate_action sa_assess_on_entry \"Assess when repair is needed\" id \"a887f96a-37cb-5891-8070-011fa276e5b5\" {\n phase Entry;\n source @sa_waiting;\n target @sa_assess;\n}\n\nstate_transition sa_normal_transition \"State transition: Monitoring\" id \"6e2c1b47-764c-577a-b325-ff66dd2a2768\" {\n guard \"repair confirmed and pressure is safe\";\n source @sa_waiting;\n target @sa_monitoring;\n}\n\n","sa/capabilities.arcadia":"sa_mission sa_mission \"Maintain safe water supply\" id \"5ad034b1-084d-5273-9e70-971671766132\" {\n}\n\nsa_capability sa_restore \"Restore a safe supply\" id \"81259051-370a-512d-a3b5-6420a6f933b6\" {\n}\n\nsa_capability sa_triage \"Assess an alarm\" id \"bad8fa7c-f634-55fd-98d3-e1eb2da05d8f\" {\n}\n\nmission_capability sa_mission_delivery \"Mission capability: Restore a safe supply\" id \"a0902e0f-3d18-576a-9aca-975a136dfdd7\" {\n source @sa_mission;\n target @sa_restore;\n}\n\ncapability_include sa_include_triage \"Capability include: Assess an alarm\" id \"f3fe7690-734a-5877-8b57-a6599a4033c4\" {\n source @sa_restore;\n target @sa_triage;\n}\n\n","sa/functions/function_sa_audit_thresholds.arcadia":"sa_function sa_audit_thresholds \"Audit pressure thresholds\" id \"4149a872-3440-59de-9879-8981e78d27ab\" {\n description \"Deliberately unfinished: assigned to the service, but no behavior context yet. Model checks should expose this one work_without_behavior_context warning.\";\n}\n\n","sa/functions/function_sa_restore_work.arcadia":"sa_function sa_restore_work \"Restore safe pressure\" id \"58867e7d-916e-5ebc-9e4c-8dbed1314be3\" {\n}\n\nsa_function sa_assess \"Assess pressure alarm\" id \"dddae020-a444-5d48-acc8-139d2696a672\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_request_out \"Request field repair output\" id \"24a6850e-b819-57e0-af88-ca4ab76581b7\" {\n contract {\n FunctionOutput {\n outgoing_items [@sa_repair_operation];\n };\n };\n parent @sa_assess;\n}\n\nsa_function sa_confirm \"Confirm safe pressure\" id \"d75eb3fa-a27d-52d5-8782-8b342b3865f6\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_report_in \"Report repair result input\" id \"391af7c4-b07d-53a7-8ddd-5c81461fc4f8\" {\n contract {\n FunctionInput {\n incoming_items [@sa_repair_operation];\n };\n };\n parent @sa_confirm;\n}\n\nsa_function sa_repair \"Repair valve in the field\" id \"9497e10f-04c4-5586-8738-2464a6f00bd4\" {\n parent @sa_restore_work;\n}\n\nsa_port sa_repair_report_out \"Report repair result output\" id \"994faed7-dbc8-5b96-9d62-7604ac0fbc3a\" {\n contract {\n FunctionOutput {\n outgoing_items [@sa_repair_operation];\n };\n };\n parent @sa_repair;\n}\n\nsa_port sa_repair_request_in \"Request field repair input\" id \"d2113fb0-a531-54ef-9484-13951b00ab8f\" {\n contract {\n FunctionInput {\n incoming_items [@sa_repair_operation];\n };\n };\n parent @sa_repair;\n}\n\nsa_function sa_reset \"Reset valve remotely\" id \"09342ccb-044b-5483-ac58-87dc3cf7831c\" {\n parent @sa_restore_work;\n}\n\ncapability_involvement sa_assessment_support \"Capability involvement: Assess an alarm\" id \"93eaad8d-83b7-5980-b9bb-86c9e3f31da4\" {\n source @sa_assess;\n target @sa_triage;\n}\n\nfunctional_exchange sa_repair_request \"Request field repair\" id \"93474111-f23e-56c1-b61b-b7c2396b91bd\" {\n items [@sa_repair_operation];\n source @sa_assess;\n source_port @sa_repair_request_out;\n target @sa_repair;\n target_port @sa_repair_request_in;\n}\n\nfunctional_exchange sa_repair_report \"Report repair result\" id \"684eadc3-e670-5779-a60f-bbc9a5bfb062\" {\n items [@sa_repair_operation];\n source @sa_repair;\n source_port @sa_repair_report_out;\n target @sa_confirm;\n target_port @sa_repair_report_in;\n}\n\n","sa/model.arcadia":"sa_exchange_category sa_contact_category \"Field contact\" id \"781cbe75-410f-5cc5-aeb8-a43491f77b99\" {\n exchanges [@sa_contact];\n family \"Participant\";\n}\n\nsa_event sa_high_pressure \"Pressure alarm detected\" id \"01490fa8-2f01-5ac8-9722-d55d45414379\" {\n body {\n Change {\n expression \"measured_pressure > operating_limit\";\n };\n };\n}\n\nsa_exchange_category sa_repair_traffic \"Repair work exchanges\" id \"a9a47e48-100c-57a8-95f0-7fe24da94f94\" {\n exchanges [@sa_repair_request, @sa_repair_report];\n}\n\n","sa/participants.arcadia":"sa_system sa_control \"Pressure coordination service\" id \"435bf87c-73fd-5e4d-978a-4c471bc9eaf0\" {\n}\n\nsa_port sa_control_port \"Repair service client\" id \"98d411e7-7c65-5c3f-b543-8bf0f2522ea2\" {\n contract {\n Component {\n kind Standard;\n orientation Unset;\n };\n };\n description \"Explicitly chosen Standard component port for the repair service.\";\n parent @sa_control;\n}\n\nsa_actor sa_technician \"Field technician\" id \"c05b9422-b9da-5de5-b21d-07ad23bd2b8a\" {\n}\n\nsa_port sa_technician_port \"Repair service provider\" id \"e6d69cbd-99d7-596b-bbe3-dada6118a600\" {\n contract {\n Component {\n kind Standard;\n orientation Unset;\n };\n };\n description \"Explicitly chosen Standard component port for the repair service.\";\n parent @sa_technician;\n}\n\nallocation sa_assess_allocation \"Allocation: Assess pressure alarm\" id \"9b9356d7-2db2-5a94-a47e-ea892cf02afe\" {\n source @sa_control;\n target @sa_assess;\n}\n\nallocation sa_audit_allocation \"Allocation: Audit pressure thresholds\" id \"1b245065-7242-5d81-8472-aaeb932054c9\" {\n source @sa_control;\n target @sa_audit_thresholds;\n}\n\nallocation sa_confirm_allocation \"Allocation: Confirm safe pressure\" id \"b76bf8de-2fa4-563f-a540-dd30f30e6c49\" {\n source @sa_control;\n target @sa_confirm;\n}\n\ninterface_requirement sa_client_requires \"Interface requirement: Valve repair service\" id \"4f85337b-f6eb-533c-a45a-9a5d1d9567ca\" {\n source @sa_control_port;\n target @sa_repair_interface;\n}\n\nboundary_exchange sa_contact \"Technician service conversation\" id \"63009b5f-539e-5914-b630-ec6b7fefb4d5\" {\n items [@sa_repair_operation];\n oriented false;\n source @sa_control_port;\n target @sa_technician_port;\n}\n\nexchange_allocation sa_report_carriage \"Exchange allocation: Report repair result\" id \"ff9897b3-a23a-5994-a5b3-99a5b4d34ceb\" {\n source @sa_contact;\n target @sa_repair_report;\n}\n\nexchange_allocation sa_request_carriage \"Exchange allocation: Request field repair\" id \"4c4c4851-5a3d-5bb9-94df-b19f9cf39819\" {\n source @sa_contact;\n target @sa_repair_request;\n}\n\nport_allocation sa_port_report_in \"Port allocation: Report repair result input\" id \"568c5c01-de21-52a2-83bd-afdddc158085\" {\n source @sa_control_port;\n target @sa_repair_report_in;\n}\n\nport_allocation sa_port_request_out \"Port allocation: Request field repair output\" id \"55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9\" {\n source @sa_control_port;\n target @sa_repair_request_out;\n}\n\nmission_involvement sa_mission_participant \"Mission involvement: Maintain safe water supply\" id \"1c1e5634-ba8c-591f-b143-90a27cdc6cd2\" {\n source @sa_control;\n target @sa_mission;\n}\n\nallocation sa_reset_allocation \"Allocation: Reset valve remotely\" id \"3cc9ab52-2b00-57fd-8709-aabc75e5d3e3\" {\n source @sa_control;\n target @sa_reset;\n}\n\nallocation sa_repair_allocation \"Allocation: Repair valve in the field\" id \"725f2e1b-aa2c-5615-9b1f-28da178168fa\" {\n source @sa_technician;\n target @sa_repair;\n}\n\nport_allocation sa_port_report_out \"Port allocation: Report repair result output\" id \"e53b7a40-e8a3-5b3f-826d-c2b5c164a84a\" {\n source @sa_technician_port;\n target @sa_repair_report_out;\n}\n\nport_allocation sa_port_request_in \"Port allocation: Request field repair input\" id \"09eaa992-4cdf-5ea3-b748-f10fd74b8cba\" {\n source @sa_technician_port;\n target @sa_repair_request_in;\n}\n\ninterface_provision sa_provider_provides \"Interface provision: Valve repair service\" id \"55f89fbf-aa3c-5ae1-95ef-ac676f9c1ada\" {\n source @sa_technician_port;\n target @sa_repair_interface;\n}\n\n","sa/types.arcadia":"sa_data_type sa_pressure \"Measured pressure\" id \"87d0a95b-af1b-5352-b753-e4c6533671a5\" {\n definition {\n Real {\n maximum 600.0;\n minimum 0.0;\n };\n };\n unit \"kPa\";\n}\n\nsa_interface sa_repair_interface \"Valve repair service\" id \"a4b8942e-a975-5f88-ad14-8f38c345baac\" {\n}\n\nsa_exchange_item sa_repair_operation \"Valve repair\" id \"a962fc5e-3ab0-5296-8b0d-fd84633f9218\" {\n mechanism Operation;\n}\n\nsa_data_field sa_pressure_parameter \"Pressure before / after repair\" id \"bb12ba5d-aab5-5a1b-99de-c767f5365b57\" {\n direction InOut;\n parent @sa_repair_operation;\n type_ref {\n Named @sa_pressure;\n };\n}\n\ninterface_item_allocation sa_repair_interface_item \"Repair operation contract\" id \"f074e041-23cf-54ad-af9c-f171e30621e7\" {\n acquisition Accept;\n source @sa_repair_interface;\n target @sa_repair_operation;\n transmission Synchronous;\n}\n\n","traceability.arcadia":"trace trace_oa_alarm_transition \"State transition: Awaiting repair ↔ State transition: Awaiting repair\" id \"0c7c8a06-163e-5b3e-8a98-e66e2ce8963b\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Awaiting repair\";\n };\n sa {\n description \"\";\n name \"State transition: Awaiting repair\";\n };\n };\n kind Manual;\n oa @oa_alarm_transition;\n sa @sa_alarm_transition;\n}\n\ntrace trace_oa_assess \"Assess pressure alarm ↔ Assess pressure alarm\" id \"5309f955-53fd-5ff4-9c0a-91737e947341\" {\n baseline {\n oa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n };\n oa @oa_assess;\n sa @sa_assess;\n}\n\ntrace trace_oa_assess_allocation \"Allocation: Assess pressure alarm ↔ Allocation: Assess pressure alarm\" id \"acdbee9c-5017-5154-804e-50801f0376ec\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Allocation: Assess pressure alarm\";\n };\n };\n kind Manual;\n oa @oa_assess_allocation;\n sa @sa_assess_allocation;\n}\n\ntrace trace_oa_assess_on_entry \"Assess when repair is needed ↔ Assess when repair is needed\" id \"fb02420d-b066-5773-87c1-198a056e0731\" {\n baseline {\n oa {\n description \"\";\n name \"Assess when repair is needed\";\n };\n sa {\n description \"\";\n name \"Assess when repair is needed\";\n };\n };\n kind Manual;\n oa @oa_assess_on_entry;\n sa @sa_assess_on_entry;\n}\n\ntrace trace_oa_assess_step \"Assess the alarm ↔ Assess the alarm\" id \"e848da41-445e-5e3c-8b4e-ef53fdddf1e1\" {\n baseline {\n oa {\n description \"\";\n name \"Assess the alarm\";\n };\n sa {\n description \"\";\n name \"Assess the alarm\";\n };\n };\n kind Sequence;\n oa @oa_assess_step;\n sa @sa_assess_step;\n}\n\ntrace trace_oa_assess_then_decide \"Continue ↔ Continue\" id \"a5c1eb01-a95f-5f7a-9742-7f201493d7aa\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_assess_then_decide;\n sa @sa_assess_then_decide;\n}\n\ntrace trace_oa_assessment_action \"Assess pressure alarm ↔ Assess pressure alarm\" id \"3a33de40-20a3-5252-899c-c12dc35e9783\" {\n baseline {\n oa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n sa {\n description \"\";\n name \"Assess pressure alarm\";\n };\n };\n kind Sequence;\n oa @oa_assessment_action;\n sa @sa_assessment_action;\n}\n\ntrace trace_oa_assessment_delivery \"Chain involvement: Assess an alarm ↔ Chain involvement: Assess an alarm\" id \"5b96bfed-63e2-5d7f-b882-91e8b81f8efe\" {\n baseline {\n oa {\n description \"\";\n name \"Chain involvement: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Chain involvement: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_assessment_delivery;\n sa @sa_assessment_delivery;\n}\n\ntrace trace_oa_assessment_procedure \"Assess an alarm procedure ↔ Assess an alarm procedure\" id \"6ca4c78a-a5f2-5470-b401-732f5a8825d0\" {\n baseline {\n oa {\n description \"\";\n name \"Assess an alarm procedure\";\n };\n sa {\n description \"\";\n name \"Assess an alarm procedure\";\n };\n };\n kind Sequence;\n oa @oa_assessment_procedure;\n sa @sa_assessment_procedure;\n}\n\ntrace trace_oa_assessment_support \"Capability involvement: Assess an alarm ↔ Capability involvement: Assess an alarm\" id \"6e13cf86-7242-5e33-8912-b037cf6e8c87\" {\n baseline {\n oa {\n description \"\";\n name \"Capability involvement: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Capability involvement: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_assessment_support;\n sa @sa_assessment_support;\n}\n\ntrace trace_oa_call \"Request valve repair ↔ Request valve repair\" id \"f0cc86e5-f8fd-5091-a40d-dbfb6515072f\" {\n baseline {\n oa {\n description \"\";\n name \"Request valve repair\";\n };\n sa {\n description \"\";\n name \"Request valve repair\";\n };\n };\n kind Scenario;\n oa @oa_call;\n sa @sa_call;\n}\n\ntrace trace_oa_caller \"Controller ↔ Controller\" id \"241dfdac-2450-5704-a4cb-9f1047db1b6d\" {\n baseline {\n oa {\n description \"\";\n name \"Controller\";\n };\n sa {\n description \"\";\n name \"Controller\";\n };\n };\n kind Scenario;\n oa @oa_caller;\n sa @sa_caller;\n}\n\ntrace trace_oa_confirm \"Confirm safe pressure ↔ Confirm safe pressure\" id \"d7773ff5-cef5-50c1-8f9d-c5659115e1f0\" {\n baseline {\n oa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n };\n oa @oa_confirm;\n sa @sa_confirm;\n}\n\ntrace trace_oa_confirm_allocation \"Allocation: Confirm safe pressure ↔ Allocation: Confirm safe pressure\" id \"2fdcbc6f-526e-5a4e-bde5-314cf0cf3ef3\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Allocation: Confirm safe pressure\";\n };\n };\n kind Manual;\n oa @oa_confirm_allocation;\n sa @sa_confirm_allocation;\n}\n\ntrace trace_oa_confirm_path \"Continue ↔ Continue\" id \"a106d183-c239-5c9f-b1f1-141af19fc778\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_confirm_path;\n sa @sa_confirm_path;\n}\n\ntrace trace_oa_confirm_step \"Confirm safe pressure ↔ Confirm safe pressure\" id \"154abfce-c311-52d1-85d1-3f4c85203b26\" {\n baseline {\n oa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n sa {\n description \"\";\n name \"Confirm safe pressure\";\n };\n };\n kind Sequence;\n oa @oa_confirm_step;\n sa @sa_confirm_step;\n}\n\ntrace trace_oa_contact \"Technician service conversation ↔ Technician service conversation\" id \"c9d65349-3400-58eb-8a55-57fa02de4b67\" {\n baseline {\n oa {\n description \"\";\n name \"Technician service conversation\";\n };\n sa {\n description \"\";\n name \"Technician service conversation\";\n };\n };\n kind Exchange;\n oa @oa_contact;\n sa @sa_contact;\n}\n\ntrace trace_oa_contact_category \"Field contact ↔ Field contact\" id \"e96ff119-bb4d-5fd9-9ab7-2ede0d3fd418\" {\n baseline {\n oa {\n description \"\";\n name \"Field contact\";\n };\n sa {\n description \"\";\n name \"Field contact\";\n };\n };\n kind Manual;\n oa @oa_contact_category;\n sa @sa_contact_category;\n}\n\ntrace trace_oa_control \"Control room ↔ Pressure coordination service\" id \"aba528ea-e396-582a-bfba-f6e2212d391a\" {\n baseline {\n oa {\n description \"\";\n name \"Control room\";\n };\n sa {\n description \"\";\n name \"Pressure coordination service\";\n };\n };\n kind Participant;\n oa @oa_control;\n sa @sa_control;\n}\n\ntrace trace_oa_conversation \"Repair request and measured reply ↔ Repair request and measured reply\" id \"3694c752-ba80-5702-a7d7-9cc66b6b01d8\" {\n baseline {\n oa {\n description \"\";\n name \"Repair request and measured reply\";\n };\n sa {\n description \"\";\n name \"Repair request and measured reply\";\n };\n };\n kind Scenario;\n oa @oa_conversation;\n sa @sa_conversation;\n}\n\ntrace trace_oa_decision \"Can a remote reset safely recover pressure? ↔ Can a remote reset safely recover pressure?\" id \"bbf6f1a1-cb2b-5632-8ec0-bf4b8ef1a941\" {\n baseline {\n oa {\n description \"\";\n name \"Can a remote reset safely recover pressure?\";\n };\n sa {\n description \"\";\n name \"Can a remote reset safely recover pressure?\";\n };\n };\n kind Sequence;\n oa @oa_decision;\n sa @sa_decision;\n}\n\ntrace trace_oa_field_merge \"Continue ↔ Continue\" id \"d32dd433-9c9e-5b57-9355-2970cc44a5f2\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_field_merge;\n sa @sa_field_merge;\n}\n\ntrace trace_oa_field_path \"else ↔ else\" id \"2e849e31-35aa-5aef-a989-26948038e52b\" {\n baseline {\n oa {\n description \"\";\n name \"else\";\n };\n sa {\n description \"\";\n name \"else\";\n };\n };\n kind Manual;\n oa @oa_field_path;\n sa @sa_field_path;\n}\n\ntrace trace_oa_field_procedure \"Field repair procedure ↔ Field repair procedure\" id \"bb72b2c2-6e32-5f65-9d8e-b33c1a65da37\" {\n baseline {\n oa {\n description \"\";\n name \"Field repair procedure\";\n };\n sa {\n description \"\";\n name \"Field repair procedure\";\n };\n };\n kind Sequence;\n oa @oa_field_procedure;\n sa @sa_field_procedure;\n}\n\ntrace trace_oa_full_scenario \"Restore supply through field repair ↔ Restore supply through field repair\" id \"435bae4c-cf6d-59f3-9eb5-d660ebeec079\" {\n baseline {\n oa {\n description \"\";\n name \"Restore supply through field repair\";\n };\n sa {\n description \"\";\n name \"Restore supply through field repair\";\n };\n };\n kind Scenario;\n oa @oa_full_scenario;\n sa @sa_full_scenario;\n}\n\ntrace trace_oa_high_pressure \"Pressure alarm detected ↔ Pressure alarm detected\" id \"b97749d4-f9ad-5fb7-9d78-bc60a74e98eb\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure alarm detected\";\n };\n sa {\n description \"\";\n name \"Pressure alarm detected\";\n };\n };\n kind State;\n oa @oa_high_pressure;\n sa @sa_high_pressure;\n}\n\ntrace trace_oa_include_triage \"Capability include: Assess an alarm ↔ Capability include: Assess an alarm\" id \"77073fcb-53aa-5f06-987a-0317cbb6971d\" {\n baseline {\n oa {\n description \"\";\n name \"Capability include: Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Capability include: Assess an alarm\";\n };\n };\n kind Manual;\n oa @oa_include_triage;\n sa @sa_include_triage;\n}\n\ntrace trace_oa_merge \"Recovery path completed ↔ Recovery path completed\" id \"0c9de959-d366-5765-98eb-450ea27bd316\" {\n baseline {\n oa {\n description \"\";\n name \"Recovery path completed\";\n };\n sa {\n description \"\";\n name \"Recovery path completed\";\n };\n };\n kind Sequence;\n oa @oa_merge;\n sa @sa_merge;\n}\n\ntrace trace_oa_mission \"Maintain safe water supply ↔ Maintain safe water supply\" id \"c987bd0f-87f6-5550-945d-2a42450fe1c5\" {\n baseline {\n oa {\n description \"\";\n name \"Maintain safe water supply\";\n };\n sa {\n description \"\";\n name \"Maintain safe water supply\";\n };\n };\n kind Mission;\n oa @oa_mission;\n sa @sa_mission;\n}\n\ntrace trace_oa_mission_delivery \"Mission capability: Restore a safe supply ↔ Mission capability: Restore a safe supply\" id \"aa164208-394d-5bc7-8462-b0043f682aad\" {\n baseline {\n oa {\n description \"\";\n name \"Mission capability: Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Mission capability: Restore a safe supply\";\n };\n };\n kind Manual;\n oa @oa_mission_delivery;\n sa @sa_mission_delivery;\n}\n\ntrace trace_oa_mission_participant \"Mission involvement: Maintain safe water supply ↔ Mission involvement: Maintain safe water supply\" id \"8d693d90-5017-56af-b056-d29d3cb46baa\" {\n baseline {\n oa {\n description \"\";\n name \"Mission involvement: Maintain safe water supply\";\n };\n sa {\n description \"\";\n name \"Mission involvement: Maintain safe water supply\";\n };\n };\n kind Manual;\n oa @oa_mission_participant;\n sa @sa_mission_participant;\n}\n\ntrace trace_oa_monitor \"Pressure supervision ↔ Pressure supervision\" id \"b53863a2-ed80-5f98-ad3c-50e1b821066d\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure supervision\";\n };\n sa {\n description \"\";\n name \"Pressure supervision\";\n };\n };\n kind State;\n oa @oa_monitor;\n sa @sa_monitor;\n}\n\ntrace trace_oa_monitor_initial \"Start ↔ Start\" id \"48d243f0-553f-507e-acb0-9474ae156b63\" {\n baseline {\n oa {\n description \"\";\n name \"Start\";\n };\n sa {\n description \"\";\n name \"Start\";\n };\n };\n kind State;\n oa @oa_monitor_initial;\n sa @sa_monitor_initial;\n}\n\ntrace trace_oa_monitor_region \"Supervision cycle ↔ Supervision cycle\" id \"208753e0-9151-50d8-86ca-29fc28eca80b\" {\n baseline {\n oa {\n description \"\";\n name \"Supervision cycle\";\n };\n sa {\n description \"\";\n name \"Supervision cycle\";\n };\n };\n kind State;\n oa @oa_monitor_region;\n sa @sa_monitor_region;\n}\n\ntrace trace_oa_monitoring \"Monitoring ↔ Monitoring\" id \"12ec320f-2e14-5a5a-8c6b-bd2b6471dae9\" {\n baseline {\n oa {\n description \"\";\n name \"Monitoring\";\n };\n sa {\n description \"\";\n name \"Monitoring\";\n };\n };\n kind State;\n oa @oa_monitoring;\n sa @sa_monitoring;\n}\n\ntrace trace_oa_normal_transition \"State transition: Monitoring ↔ State transition: Monitoring\" id \"c47cf0b4-fe15-5175-bd62-5292e43adc39\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n sa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n };\n kind Manual;\n oa @oa_normal_transition;\n sa @sa_normal_transition;\n}\n\ntrace trace_oa_outer_controller \"Controller ↔ Controller\" id \"fd195498-dbba-523b-94d0-49f3b9531a3e\" {\n baseline {\n oa {\n description \"\";\n name \"Controller\";\n };\n sa {\n description \"\";\n name \"Controller\";\n };\n };\n kind Scenario;\n oa @oa_outer_controller;\n sa @sa_outer_controller;\n}\n\ntrace trace_oa_outer_technician \"Technician ↔ Technician\" id \"c132a0df-1270-55a8-ac4e-6e5075823dc1\" {\n baseline {\n oa {\n description \"\";\n name \"Technician\";\n };\n sa {\n description \"\";\n name \"Technician\";\n };\n };\n kind Scenario;\n oa @oa_outer_technician;\n sa @sa_outer_technician;\n}\n\ntrace trace_oa_pressure \"Measured pressure ↔ Measured pressure\" id \"d9d47371-e98d-5d29-9df7-4de2d28a5c73\" {\n baseline {\n oa {\n description \"\";\n name \"Measured pressure\";\n };\n sa {\n description \"\";\n name \"Measured pressure\";\n };\n };\n kind Item;\n oa @oa_pressure;\n sa @sa_pressure;\n}\n\ntrace trace_oa_pressure_parameter \"Pressure before / after repair ↔ Pressure before / after repair\" id \"0d905fbb-5b3c-56f0-9f11-a27091901eb0\" {\n baseline {\n oa {\n description \"\";\n name \"Pressure before / after repair\";\n };\n sa {\n description \"\";\n name \"Pressure before / after repair\";\n };\n };\n kind Item;\n oa @oa_pressure_parameter;\n sa @sa_pressure_parameter;\n}\n\ntrace trace_oa_remote_merge \"Continue ↔ Continue\" id \"1b788e74-36b2-5c17-a936-642dbe51ca3c\" {\n baseline {\n oa {\n description \"\";\n name \"Continue\";\n };\n sa {\n description \"\";\n name \"Continue\";\n };\n };\n kind Manual;\n oa @oa_remote_merge;\n sa @sa_remote_merge;\n}\n\ntrace trace_oa_remote_path \"remote reset is authorized ↔ remote reset is authorized\" id \"eee79ec1-41d7-5374-986e-995a56b9026f\" {\n baseline {\n oa {\n description \"\";\n name \"remote reset is authorized\";\n };\n sa {\n description \"\";\n name \"remote reset is authorized\";\n };\n };\n kind Manual;\n oa @oa_remote_path;\n sa @sa_remote_path;\n}\n\ntrace trace_oa_repair \"Repair valve in the field ↔ Repair valve in the field\" id \"b13452bb-1a55-5ad6-b6d9-a37fb34e8d13\" {\n baseline {\n oa {\n description \"\";\n name \"Repair valve in the field\";\n };\n sa {\n description \"\";\n name \"Repair valve in the field\";\n };\n };\n oa @oa_repair;\n sa @sa_repair;\n}\n\ntrace trace_oa_repair_allocation \"Allocation: Repair valve in the field ↔ Allocation: Repair valve in the field\" id \"3714d547-006f-5c3a-97f8-175ccc23d994\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Repair valve in the field\";\n };\n sa {\n description \"\";\n name \"Allocation: Repair valve in the field\";\n };\n };\n kind Manual;\n oa @oa_repair_allocation;\n sa @sa_repair_allocation;\n}\n\ntrace trace_oa_repair_operation \"Valve repair ↔ Valve repair\" id \"cf92cedf-ea1a-510c-9bc5-89c16d60e8d2\" {\n baseline {\n oa {\n description \"\";\n name \"Valve repair\";\n };\n sa {\n description \"\";\n name \"Valve repair\";\n };\n };\n kind Item;\n oa @oa_repair_operation;\n sa @sa_repair_operation;\n}\n\ntrace trace_oa_repair_report \"Report repair result ↔ Report repair result\" id \"424eca39-1c29-5a2f-b9ee-33dd018926aa\" {\n baseline {\n oa {\n description \"\";\n name \"Report repair result\";\n };\n sa {\n description \"\";\n name \"Report repair result\";\n };\n };\n kind Exchange;\n oa @oa_repair_report;\n sa @sa_repair_report;\n}\n\ntrace trace_oa_repair_request \"Request field repair ↔ Request field repair\" id \"da8efc3c-78df-5b10-b2e5-1e28d6d99e86\" {\n baseline {\n oa {\n description \"\";\n name \"Request field repair\";\n };\n sa {\n description \"\";\n name \"Request field repair\";\n };\n };\n kind Exchange;\n oa @oa_repair_request;\n sa @sa_repair_request;\n}\n\ntrace trace_oa_repair_step \"Repair the valve ↔ Repair the valve\" id \"ac3aa6b0-568e-5a3f-963a-172aa3cfc7a4\" {\n baseline {\n oa {\n description \"\";\n name \"Repair the valve\";\n };\n sa {\n description \"\";\n name \"Repair the valve\";\n };\n };\n kind Sequence;\n oa @oa_repair_step;\n sa @sa_repair_step;\n}\n\ntrace trace_oa_repair_then_report \"Sequence link: Report the measured result ↔ Sequence link: Report the measured result\" id \"f8d34715-1dc8-504b-acdf-78b770aad1e8\" {\n baseline {\n oa {\n description \"\";\n name \"Sequence link: Report the measured result\";\n };\n sa {\n description \"\";\n name \"Sequence link: Report the measured result\";\n };\n };\n kind Manual;\n oa @oa_repair_then_report;\n sa @sa_repair_then_report;\n}\n\ntrace trace_oa_repair_traffic \"Repair work exchanges ↔ Repair work exchanges\" id \"3e7bde54-f9c1-549f-9e5b-2ce1ecb685a7\" {\n baseline {\n oa {\n description \"\";\n name \"Repair work exchanges\";\n };\n sa {\n description \"\";\n name \"Repair work exchanges\";\n };\n };\n kind Manual;\n oa @oa_repair_traffic;\n sa @sa_repair_traffic;\n}\n\ntrace trace_oa_reply \"Return pressure after repair ↔ Return pressure after repair\" id \"595b5729-ccd9-5291-b5d9-30d8c8bd9dfa\" {\n baseline {\n oa {\n description \"\";\n name \"Return pressure after repair\";\n };\n sa {\n description \"\";\n name \"Return pressure after repair\";\n };\n };\n kind Scenario;\n oa @oa_reply;\n sa @sa_reply;\n}\n\ntrace trace_oa_report_step \"Report the measured result ↔ Report the measured result\" id \"e63b14d2-f408-56a2-aec4-be20cf4ace73\" {\n baseline {\n oa {\n description \"\";\n name \"Report the measured result\";\n };\n sa {\n description \"\";\n name \"Report the measured result\";\n };\n };\n kind Sequence;\n oa @oa_report_step;\n sa @sa_report_step;\n}\n\ntrace trace_oa_request_step \"Request the field repair ↔ Request the field repair\" id \"ad697c00-07d9-5799-89b3-2c78da8dff4d\" {\n baseline {\n oa {\n description \"\";\n name \"Request the field repair\";\n };\n sa {\n description \"\";\n name \"Request the field repair\";\n };\n };\n kind Sequence;\n oa @oa_request_step;\n sa @sa_request_step;\n}\n\ntrace trace_oa_request_then_repair \"Sequence link: Repair the valve ↔ Sequence link: Repair the valve\" id \"f2b7050c-629d-533f-b873-bffc33e072f7\" {\n baseline {\n oa {\n description \"\";\n name \"Sequence link: Repair the valve\";\n };\n sa {\n description \"\";\n name \"Sequence link: Repair the valve\";\n };\n };\n kind Manual;\n oa @oa_request_then_repair;\n sa @sa_request_then_repair;\n}\n\ntrace trace_oa_reset \"Reset valve remotely ↔ Reset valve remotely\" id \"82a5be1a-92a8-578d-9448-086062a20d8f\" {\n baseline {\n oa {\n description \"\";\n name \"Reset valve remotely\";\n };\n sa {\n description \"\";\n name \"Reset valve remotely\";\n };\n };\n oa @oa_reset;\n sa @sa_reset;\n}\n\ntrace trace_oa_reset_allocation \"Allocation: Reset valve remotely ↔ Allocation: Reset valve remotely\" id \"98ef05b5-5381-5d35-a433-ebab55e9f382\" {\n baseline {\n oa {\n description \"\";\n name \"Allocation: Reset valve remotely\";\n };\n sa {\n description \"\";\n name \"Allocation: Reset valve remotely\";\n };\n };\n kind Manual;\n oa @oa_reset_allocation;\n sa @sa_reset_allocation;\n}\n\ntrace trace_oa_reset_step \"Try the authorized remote reset ↔ Try the authorized remote reset\" id \"ff84fc06-6f99-5cf3-b73d-236e9eff98a3\" {\n baseline {\n oa {\n description \"\";\n name \"Try the authorized remote reset\";\n };\n sa {\n description \"\";\n name \"Try the authorized remote reset\";\n };\n };\n kind Sequence;\n oa @oa_reset_step;\n sa @sa_reset_step;\n}\n\ntrace trace_oa_responder \"Technician ↔ Technician\" id \"c5051628-b7af-5fb1-a014-bb60a0b46e03\" {\n baseline {\n oa {\n description \"\";\n name \"Technician\";\n };\n sa {\n description \"\";\n name \"Technician\";\n };\n };\n kind Scenario;\n oa @oa_responder;\n sa @sa_responder;\n}\n\ntrace trace_oa_response \"Handle a pressure alarm ↔ Handle a pressure alarm\" id \"d3626818-4846-5893-9c02-3407cdba7f3c\" {\n baseline {\n oa {\n description \"\";\n name \"Handle a pressure alarm\";\n };\n sa {\n description \"\";\n name \"Handle a pressure alarm\";\n };\n };\n kind Sequence;\n oa @oa_response;\n sa @sa_response;\n}\n\ntrace trace_oa_response_delivery \"Chain involvement: Restore a safe supply ↔ Chain involvement: Restore a safe supply\" id \"70c90b0c-85ce-574a-a217-f0d19fad30e1\" {\n baseline {\n oa {\n description \"\";\n name \"Chain involvement: Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Chain involvement: Restore a safe supply\";\n };\n };\n kind Manual;\n oa @oa_response_delivery;\n sa @sa_response_delivery;\n}\n\ntrace trace_oa_restore \"Restore a safe supply ↔ Restore a safe supply\" id \"0fbef164-b5d3-58ba-ba41-54d0e63709ab\" {\n baseline {\n oa {\n description \"\";\n name \"Restore a safe supply\";\n };\n sa {\n description \"\";\n name \"Restore a safe supply\";\n };\n };\n kind Capability;\n oa @oa_restore;\n sa @sa_restore;\n}\n\ntrace trace_oa_restore_work \"Restore safe pressure ↔ Restore safe pressure\" id \"82cca563-9d5d-5479-aa1a-9db03e9674d1\" {\n baseline {\n oa {\n description \"\";\n name \"Restore safe pressure\";\n };\n sa {\n description \"\";\n name \"Restore safe pressure\";\n };\n };\n oa @oa_restore_work;\n sa @sa_restore_work;\n}\n\ntrace trace_oa_start_monitoring \"State transition: Monitoring ↔ State transition: Monitoring\" id \"07a7b82a-b5a7-5737-abfa-09e422f7420e\" {\n baseline {\n oa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n sa {\n description \"\";\n name \"State transition: Monitoring\";\n };\n };\n kind Manual;\n oa @oa_start_monitoring;\n sa @sa_start_monitoring;\n}\n\ntrace trace_oa_technician \"Field technician ↔ Field technician\" id \"d47d3c36-50fb-5189-b801-d6fd1694bd49\" {\n baseline {\n oa {\n description \"\";\n name \"Field technician\";\n };\n sa {\n description \"\";\n name \"Field technician\";\n };\n };\n kind Participant;\n oa @oa_technician;\n sa @sa_technician;\n}\n\ntrace trace_oa_triage \"Assess an alarm ↔ Assess an alarm\" id \"6acd072d-431e-5881-ab20-1813b4fda0c5\" {\n baseline {\n oa {\n description \"\";\n name \"Assess an alarm\";\n };\n sa {\n description \"\";\n name \"Assess an alarm\";\n };\n };\n kind Capability;\n oa @oa_triage;\n sa @sa_triage;\n}\n\ntrace trace_oa_use_conversation \"Use the reviewed repair conversation ↔ Use the reviewed repair conversation\" id \"f5733d3f-eee3-5cf7-a422-5edd2054d6a6\" {\n baseline {\n oa {\n description \"\";\n name \"Use the reviewed repair conversation\";\n };\n sa {\n description \"\";\n name \"Use the reviewed repair conversation\";\n };\n };\n kind Scenario;\n oa @oa_use_conversation;\n sa @sa_use_conversation;\n}\n\ntrace trace_oa_use_field \"Use the field repair procedure ↔ Use the field repair procedure\" id \"7a6b4b9c-4220-546a-a752-1587c2881fe1\" {\n baseline {\n oa {\n description \"\";\n name \"Use the field repair procedure\";\n };\n sa {\n description \"\";\n name \"Use the field repair procedure\";\n };\n };\n kind Sequence;\n oa @oa_use_field;\n sa @sa_use_field;\n}\n\ntrace trace_oa_waiting \"Awaiting repair ↔ Awaiting repair\" id \"0754be23-e4b8-53bc-b03c-89c2dbd80361\" {\n baseline {\n oa {\n description \"\";\n name \"Awaiting repair\";\n };\n sa {\n description \"\";\n name \"Awaiting repair\";\n };\n };\n kind State;\n oa @oa_waiting;\n sa @sa_waiting;\n}\n\n","views/diagram_oa_allocation_view.arcadia":"diagram oa_allocation_view \"1 · OA responsibility and repair traffic\" id \"103ea62c-ac56-5827-94e7-cf09bca96ccc\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n projection Allocation;\n}\n\nnode oa_allocation_view_oa_assess id \"5ae1c46d-59a3-50fd-8cc3-b292df21f951\" {\n diagram @oa_allocation_view;\n element @oa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_confirm id \"edd74060-ac61-5450-a57c-a6577daa5d50\" {\n diagram @oa_allocation_view;\n element @oa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_control id \"3191e05c-1c7f-5f0e-beb0-5f3bded54c48\" {\n diagram @oa_allocation_view;\n element @oa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_repair id \"202ebe37-ddb4-5099-8ce9-ec3e895ab9e9\" {\n diagram @oa_allocation_view;\n element @oa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_reset id \"7066f78c-9736-5349-b94a-0587331b980e\" {\n diagram @oa_allocation_view;\n element @oa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode oa_allocation_view_oa_technician id \"d27f28ef-f10a-5355-9a05-6f2fd39b7de6\" {\n diagram @oa_allocation_view;\n element @oa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n","views/diagram_sa_allocation_view.arcadia":"diagram sa_allocation_view \"2 · SA service boundary and functions\" id \"35d3c24b-289e-59e5-a610-8333e2c6a4bb\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Allocation;\n}\n\nnode sa_allocation_view_sa_assess id \"60f6ad74-b69e-5aef-b832-f1bd60b903ae\" {\n diagram @sa_allocation_view;\n element @sa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_confirm id \"7e3ba36f-bc68-5520-bdb9-77083bb7bba2\" {\n diagram @sa_allocation_view;\n element @sa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_control id \"8345c76a-8d85-5c31-902e-ec1cd33ed4a3\" {\n diagram @sa_allocation_view;\n element @sa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_repair id \"34630a18-41b0-5fdd-bff4-ee86e93e8651\" {\n diagram @sa_allocation_view;\n element @sa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_reset id \"73406244-ebd7-5995-86c7-e17c73c50b32\" {\n diagram @sa_allocation_view;\n element @sa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_allocation_view_sa_technician id \"f7225d1c-e506-505d-bb20-916950269d4b\" {\n diagram @sa_allocation_view;\n element @sa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n","views/diagram_sa_capability_view.arcadia":"diagram sa_capability_view \"4 · SA mission and included capability\" id \"3e6ad194-61b5-584c-b0f0-a78a20af5781\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Capabilities;\n}\n\nnode sa_capability_view_sa_control id \"41ddb68b-bd2b-5f91-82eb-efde01157828\" {\n diagram @sa_capability_view;\n element @sa_control;\n position {\n x 60.0;\n y 60.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_mission id \"4b814335-bf98-5b68-85d5-ea549766517a\" {\n diagram @sa_capability_view;\n element @sa_mission;\n position {\n x 420.0;\n y 60.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_restore id \"d3bc13f9-7726-5280-83fe-63f391c45afb\" {\n diagram @sa_capability_view;\n element @sa_restore;\n position {\n x 420.0;\n y 260.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_capability_view_sa_triage id \"069a3fb3-077c-59d8-91da-27b0665143c7\" {\n diagram @sa_capability_view;\n element @sa_triage;\n position {\n x 800.0;\n y 260.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n","views/diagram_sa_service_view.arcadia":"diagram sa_service_view \"3 · SA service conversation only\" id \"50af4c9b-93ce-5ff5-a1f8-7a81eb97e779\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection Allocation;\n view_options {\n exchange_labels \"NameAndItems\";\n participant_categories {\n Any [@sa_contact_category];\n };\n work_categories {\n Any [];\n };\n };\n}\n\nnode sa_service_view_sa_assess id \"439f1e45-e5ed-567c-978b-4c93ef267db1\" {\n diagram @sa_service_view;\n element @sa_assess;\n position {\n x 100.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_confirm id \"6f138672-149b-5f88-ab07-7fc413a42262\" {\n diagram @sa_service_view;\n element @sa_confirm;\n position {\n x 100.0;\n y 490.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_control id \"f53d4352-b042-56a6-8b3e-c51cd27254f9\" {\n diagram @sa_service_view;\n element @sa_control;\n position {\n x 60.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_repair id \"ae36489d-6ec8-5f1c-b603-8b497227efba\" {\n diagram @sa_service_view;\n element @sa_repair;\n position {\n x 890.0;\n y 170.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_reset id \"d52da4e6-40b7-5dbc-84fb-80c443711c69\" {\n diagram @sa_service_view;\n element @sa_reset;\n position {\n x 100.0;\n y 330.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_service_view_sa_technician id \"40210589-69f7-5209-b329-10bb83cf615c\" {\n diagram @sa_service_view;\n element @sa_technician;\n position {\n x 850.0;\n y 80.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n","views/diagram_sa_state_view.arcadia":"diagram sa_state_view \"5 · SA pressure supervision\" id \"30d5baf9-6581-5cb6-846a-bcaa1e6cce63\" {\n description \"Teaching view: positions and filters do not change ownership or exchange identities.\";\n layer Sa;\n projection {\n StateMachine {\n machine @sa_monitor;\n };\n };\n}\n\nnode sa_state_view_sa_monitor id \"a676fbb9-0833-59a8-98cf-a10d8f4b7434\" {\n diagram @sa_state_view;\n element @sa_monitor;\n position {\n x 30.0;\n y 30.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitor_initial id \"5e2326a0-0f6c-5f8d-8a21-fdded18a9281\" {\n diagram @sa_state_view;\n element @sa_monitor_initial;\n position {\n x 100.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitor_region id \"55a74f91-2025-5001-8db8-9566b1dbe783\" {\n diagram @sa_state_view;\n element @sa_monitor_region;\n position {\n x 70.0;\n y 95.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_monitoring id \"b3af7b04-5a45-5b82-ab69-7eada4b876f0\" {\n diagram @sa_state_view;\n element @sa_monitoring;\n position {\n x 220.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\nnode sa_state_view_sa_waiting id \"57acbb71-ca86-57fc-ae90-42dad195f0e0\" {\n diagram @sa_state_view;\n element @sa_waiting;\n position {\n x 650.0;\n y 200.0;\n };\n size {\n height 110.0;\n width 245.0;\n };\n}\n\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/result.json b/harness/experiments/compact-help-20261001/package/native-model-oracle/result.json new file mode 100644 index 00000000..f8ab911e --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/result.json @@ -0,0 +1,29 @@ +{ + "status": "PASS", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--bind", + "127.0.0.1:60533", + "--data-dir", + "C:\\ar-compact-01a0d717\\.local\\package39\\native-model-oracle\\store" + ], + "path": "C:\\Windows\\System32;C:\\Windows", + "server_sha256": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "pid": 7304, + "resource_ids": [ + "b1120b39-d420-496a-855a-b9ee0524b653", + "0f2b9beb-fe51-4996-9367-568d77191729" + ], + "source_files_each": 30, + "model_delta": { + "id": "61f7bbfb-74a4-5540-9182-2583dfb27a49", + "field": "name", + "before": "Assess pressure alarm", + "after": "Assess pressure alarm QA LEFT XYRIGHT" + }, + "complete_project_equal_to_declared_delta": true, + "source_preserved_exactly": true, + "server_exit": 1, + "shutdown_scope": "Owned TerminateProcess after acknowledged import/read; no graceful shutdown claim." +} diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/stderr.log b/harness/experiments/compact-help-20261001/package/native-model-oracle/stderr.log new file mode 100644 index 00000000..c60a4fde --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-model-oracle/stderr.log @@ -0,0 +1 @@ +arcadia-server 0.2.0 listening on 127.0.0.1:60533; data C:\ar-compact-01a0d717\.local\package39\native-model-oracle\store diff --git a/harness/experiments/compact-help-20261001/package/native-model-oracle/stdout.log b/harness/experiments/compact-help-20261001/package/native-model-oracle/stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/01-reopen-exact-path.png b/harness/experiments/compact-help-20261001/package/native-reopen/01-reopen-exact-path.png new file mode 100644 index 00000000..a9ff6ac4 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native-reopen/01-reopen-exact-path.png differ diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/02-reopened-exact-name-properties.png b/harness/experiments/compact-help-20261001/package/native-reopen/02-reopened-exact-name-properties.png new file mode 100644 index 00000000..26c38207 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native-reopen/02-reopened-exact-name-properties.png differ diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/03-reopened-help.png b/harness/experiments/compact-help-20261001/package/native-reopen/03-reopened-help.png new file mode 100644 index 00000000..431fd41e Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native-reopen/03-reopened-help.png differ diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/04-reopened-no-change-save.png b/harness/experiments/compact-help-20261001/package/native-reopen/04-reopened-no-change-save.png new file mode 100644 index 00000000..1e230fbd Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native-reopen/04-reopened-no-change-save.png differ diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/finished.json b/harness/experiments/compact-help-20261001/package/native-reopen/finished.json new file mode 100644 index 00000000..8cc77775 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-reopen/finished.json @@ -0,0 +1,19 @@ +{ + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "package_source": "ea23e229260d7d050b3c3b88e77c3a851e936abe", + "start": "2026-10-02T01:03:36.562376+00:00", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-studio.exe" + ], + "cwd": "C:\\ar-compact-01a0d717\\.local\\package39\\working", + "path": "C:\\Windows\\System32;C:\\Windows", + "platform": "Windows-11-10.0.26200-SP0", + "binary_sha256": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "pid": 3268, + "exit_code": 0, + "finished": "2026-10-02T01:05:26.044448+00:00", + "stdout_bytes": 0, + "stderr_bytes": 0, + "package_files_unchanged": true +} diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/review.md b/harness/experiments/compact-help-20261001/package/native-reopen/review.md new file mode 100644 index 00000000..6dc8067c --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-reopen/review.md @@ -0,0 +1,16 @@ +# Fresh-process package reopen review + +Independent native review by `/root/ux_critique`, 2026-10-01 America/Los_Angeles, using Computer Use `@oai/sky`. Continuation of [the first package session](../native/review.md). + +Parent launched fresh PID 3268 from the same extracted `ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm/arcadia-studio.exe`, with system-only PATH and an unrelated cwd. Desktop source is `6e7c4ddaf0775198384a8c4882809ea8e14b2976`; executable SHA-256 is `D55ECAD4B0F75C0C9C26625E5441BEF9C9360890B65BC13236C6EBFAF03D631E`. Reviewer independently selected the newly returned native app window; no launch or kill was performed by the reviewer. + +## Actual workflow and result + +1. From fresh Home, clicked pointer Open and entered exactly `C:/ar-compact-01a0d717/.local/package39/working/saved/qa-saved.arcadia` in the native file dialog. Opened that entry, without using recent/recovery shortcuts. Evidence: `01-reopen-exact-path.png`. +2. OA Allocation loaded with `All changes saved`, 94 objects and 62 links. Clicked the renamed Assess activity. Inspector displayed exact Name `Assess pressure alarm QA LEFT XYRIGHT`, stable alias `oa_assess`, Performer `Control room`, Parent `Restore safe pressure`, and identity `61f7bbfb-74a4-5540-9182-2583dfb27a49`. Evidence: `02-reopened-exact-name-properties.png`. +3. The UI displayed two model checks, matching the first session after the declared rename, whereas the pristine model displayed one. This observation is retained rather than claiming every count stayed identical. No new model or property changes were made during this reopen session. +4. Opened F1 Help, observed the ownership/allocation topic, and used Escape to return. The same activity remained selected with the persisted properties and canvas context. Evidence: `03-reopened-help.png`. +5. Clicked Save all without editing. UI remained saved and footer reported `All source files saved`. Evidence: `04-reopened-no-change-save.png`. Byte-for-byte no-op validation is the parent's independent oracle, not inferred from this status. +6. Closed normally with Alt+F4. Fresh native window enumeration confirmed no extracted-package app window remained. No crash dialog was observed. Parent was notified that the GUI is available for the separate #38 review; reviewer did not interact with #38 or any other application. + +No blocking native defect was observed in this reopen/no-change-save scope. Parent owns the second-process exit/stdout/stderr checks and the post-close full-file comparison. Screenshots and visible properties support the interaction findings; they do not prove complete model equality by themselves. diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/started.json b/harness/experiments/compact-help-20261001/package/native-reopen/started.json new file mode 100644 index 00000000..78114379 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-reopen/started.json @@ -0,0 +1,14 @@ +{ + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "package_source": "ea23e229260d7d050b3c3b88e77c3a851e936abe", + "start": "2026-10-02T01:03:36.562376+00:00", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-studio.exe" + ], + "cwd": "C:\\ar-compact-01a0d717\\.local\\package39\\working", + "path": "C:\\Windows\\System32;C:\\Windows", + "platform": "Windows-11-10.0.26200-SP0", + "binary_sha256": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "pid": 3268 +} diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/stderr.log b/harness/experiments/compact-help-20261001/package/native-reopen/stderr.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/native-reopen/stdout.log b/harness/experiments/compact-help-20261001/package/native-reopen/stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/native-source-destination-initial.json b/harness/experiments/compact-help-20261001/package/native-source-destination-initial.json new file mode 100644 index 00000000..40e3db1e --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-source-destination-initial.json @@ -0,0 +1,46 @@ +{ + "status": "PASS", + "files": 37, + "source_files": 30, + "oracle": "Complete pristine37-file project with entry relocated to qa-saved.arcadia and exactlyone declared Activity-name literal; seven non-source companions separately copied before SaveAs,30 sourcefiles written by application.", + "differences": [], + "sha256": { + "expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "qa-saved.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230", + "oa/activities/activity_oa_restore_work.arcadia": "131451be326e44ccf022996246cc341a32040c7ac6f56b4db4202e6c259cfc0a", + "oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c" + } +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-source-destination-reopen.json b/harness/experiments/compact-help-20261001/package/native-source-destination-reopen.json new file mode 100644 index 00000000..40e3db1e --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-source-destination-reopen.json @@ -0,0 +1,46 @@ +{ + "status": "PASS", + "files": 37, + "source_files": 30, + "oracle": "Complete pristine37-file project with entry relocated to qa-saved.arcadia and exactlyone declared Activity-name literal; seven non-source companions separately copied before SaveAs,30 sourcefiles written by application.", + "differences": [], + "sha256": { + "expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "qa-saved.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230", + "oa/activities/activity_oa_restore_work.arcadia": "131451be326e44ccf022996246cc341a32040c7ac6f56b4db4202e6c259cfc0a", + "oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c" + } +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native-source-existing-save.json b/harness/experiments/compact-help-20261001/package/native-source-existing-save.json new file mode 100644 index 00000000..2a5be958 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native-source-existing-save.json @@ -0,0 +1,45 @@ +{ + "status": "PASS", + "oracle": "all37 files exactly equal pristine bundle plus only declared Activity-name literal", + "changed_file": "oa/activities/activity_oa_restore_work.arcadia", + "files": 37, + "sha256": { + "expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230", + "oa/activities/activity_oa_restore_work.arcadia": "131451be326e44ccf022996246cc341a32040c7ac6f56b4db4202e6c259cfc0a", + "oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c" + } +} diff --git a/harness/experiments/compact-help-20261001/package/native/01-package-home.png b/harness/experiments/compact-help-20261001/package/native/01-package-home.png new file mode 100644 index 00000000..2d821000 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/01-package-home.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/02-bundled-walkthrough.png b/harness/experiments/compact-help-20261001/package/native/02-bundled-walkthrough.png new file mode 100644 index 00000000..4844fe0d Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/02-bundled-walkthrough.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/03-bundled-offline-help.png b/harness/experiments/compact-help-20261001/package/native/03-bundled-offline-help.png new file mode 100644 index 00000000..daa2a823 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/03-bundled-offline-help.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/04-working-minimum.png b/harness/experiments/compact-help-20261001/package/native/04-working-minimum.png new file mode 100644 index 00000000..cff3183c Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/04-working-minimum.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/05-minimum-help-keyboard.png b/harness/experiments/compact-help-20261001/package/native/05-minimum-help-keyboard.png new file mode 100644 index 00000000..4370bbdc Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/05-minimum-help-keyboard.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/06-exact-draft-left-xyright.png b/harness/experiments/compact-help-20261001/package/native/06-exact-draft-left-xyright.png new file mode 100644 index 00000000..98aa9a95 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/06-exact-draft-left-xyright.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/07-qa-rename-applied.png b/harness/experiments/compact-help-20261001/package/native/07-qa-rename-applied.png new file mode 100644 index 00000000..7ef61e0b Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/07-qa-rename-applied.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/08-save-as-path.png b/harness/experiments/compact-help-20261001/package/native/08-save-as-path.png new file mode 100644 index 00000000..7d62f257 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/08-save-as-path.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/09-save-as-unexpected-external-change.png b/harness/experiments/compact-help-20261001/package/native/09-save-as-unexpected-external-change.png new file mode 100644 index 00000000..183ce68a Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/09-save-as-unexpected-external-change.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/10-save-existing-project-success.png b/harness/experiments/compact-help-20261001/package/native/10-save-existing-project-success.png new file mode 100644 index 00000000..26676ed3 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/10-save-existing-project-success.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/11-undo-original-unsaved.png b/harness/experiments/compact-help-20261001/package/native/11-undo-original-unsaved.png new file mode 100644 index 00000000..40c90a86 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/11-undo-original-unsaved.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/12-redo-renamed-saved.png b/harness/experiments/compact-help-20261001/package/native/12-redo-renamed-saved.png new file mode 100644 index 00000000..75b9475b Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/12-redo-renamed-saved.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/13-save-after-redo.png b/harness/experiments/compact-help-20261001/package/native/13-save-after-redo.png new file mode 100644 index 00000000..63ef3575 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/13-save-after-redo.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/14-fresh-save-as-path.png b/harness/experiments/compact-help-20261001/package/native/14-fresh-save-as-path.png new file mode 100644 index 00000000..a7691d54 Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/14-fresh-save-as-path.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/15-fresh-save-as-success.png b/harness/experiments/compact-help-20261001/package/native/15-fresh-save-as-success.png new file mode 100644 index 00000000..d72b27bc Binary files /dev/null and b/harness/experiments/compact-help-20261001/package/native/15-fresh-save-as-success.png differ diff --git a/harness/experiments/compact-help-20261001/package/native/baseline.json b/harness/experiments/compact-help-20261001/package/native/baseline.json new file mode 100644 index 00000000..03463eb3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native/baseline.json @@ -0,0 +1,39 @@ +{ + "expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230", + "oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f", + "oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c" +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/native/finished.json b/harness/experiments/compact-help-20261001/package/native/finished.json new file mode 100644 index 00000000..2a97829f --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native/finished.json @@ -0,0 +1,19 @@ +{ + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "package_source": "ea23e229260d7d050b3c3b88e77c3a851e936abe", + "start": "2026-10-02T00:53:58.506330+00:00", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-studio.exe" + ], + "cwd": "C:\\ar-compact-01a0d717\\.local\\package39\\working", + "path": "C:\\Windows\\System32;C:\\Windows", + "platform": "Windows-11-10.0.26200-SP0", + "binary_sha256": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "pid": 8120, + "exit_code": 0, + "finished": "2026-10-02T01:03:10.515045+00:00", + "stdout_bytes": 0, + "stderr_bytes": 0, + "package_files_unchanged": true +} diff --git a/harness/experiments/compact-help-20261001/package/native/review.md b/harness/experiments/compact-help-20261001/package/native/review.md new file mode 100644 index 00000000..0582b676 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native/review.md @@ -0,0 +1,54 @@ +# Extracted package native review + +Independent native review by `/root/ux_critique`, 2026-10-01 America/Los_Angeles. Uses Computer Use `@oai/sky` only for application actions; skill version 26.928.40906 and its mandatory docs were read. Parent launched the extracted package with system-only PATH and an unrelated working directory, and owns stdout/stderr/exit and byte-oracle checks. + +## Identity + +- Desktop source: `6e7c4ddaf0775198384a8c4882809ea8e14b2976`; package/documentation revision supplied by parent: `ea23`. +- Executable SHA-256 supplied by parent: `D55ECAD4B0F75C0C9C26625E5441BEF9C9360890B65BC13236C6EBFAF03D631E`. +- Extracted executable selected from native window enumeration: `C:/ar-compact-01a0d717/.local/package39/extracted/ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm/arcadia-studio.exe`. +- Parent-owned first process: PID 8120. Reviewer did not launch or kill it. + +## Passed native observations + +1. Home loaded at normal 1440x900 client size (1442x932 captured). Clicked `Open water-pressure walkthrough`. The packaged example opened in OA Allocation with 94 objects, 62 links, one model check and `All changes saved`. No edit or Save was made to the bundled example. Evidence: `01-package-home.png`, `02-bundled-walkthrough.png`. +2. Clicked the visible `Help · F1` control. The in-app ownership/allocation guide appeared and was readable without a browser; Escape returned to the example. Evidence: `03-bundled-offline-help.png`. This verifies bundled Help availability, not a network isolation experiment. +3. Used pointer Open and the native file dialog to open exactly `C:/ar-compact-01a0d717/.local/package39/working/release1/project.arcadia`, the complete separate copied fixture. Native dialog path was explicitly entered; no recent-model shortcut or original fixture was used for editing. +4. Resized through the native window system menu to 1100x700 client (1102x732 captured). Projection, Help, Arrange, Destination, selection status, Inspector Apply/Revert and Save As remained reachable. Evidence: `04-working-minimum.png`. +5. Clicked Assess pressure alarm in the canvas and edited only its Name draft to `Assess pressure alarm QA LEFT RIGHT`. Ctrl+Left placed the caret before RIGHT. F1, PageDown, End, Escape, then X without refocusing produced LEFT XRIGHT. F1, visible Close, then Y without refocusing produced exactly `Assess pressure alarm QA LEFT XYRIGHT`. The selected activity, canvas and zoom stayed in place. Evidence: `05-minimum-help-keyboard.png`, `06-exact-draft-left-xyright.png`. +6. Clicked Apply changes. The displayed Name became exactly `Assess pressure alarm QA LEFT XYRIGHT`; alias remained `oa_assess`; performer remained Control room. No other authored edit was performed. Evidence: `07-qa-rename-applied.png`. + +## Observed refusal: Save As reports an external-change conflict + +Reproduction on the first process: + +1. After the successful Apply above, clicked Save As. +2. The native Save As dialog opened in the complete working-copy `release1` folder. Entered the full target `C:/ar-compact-01a0d717/.local/package39/working/release1/qa-saved.arcadia` and clicked Save. Evidence: `08-save-as-path.png`. +3. The dialog closed, but the application remained `Unsaved changes` with title `*`. The visible footer reported: `Source files changed outside Arcadia Studio: ["oa/activities/activity_oa_restore_work.arcadia"]`. A second fresh native observation showed the same state. Evidence: `09-save-as-unexpected-external-change.png`. + +The reviewer stopped dependent actions immediately and notified the parent. No further input was issued until the parent inspected disk and authorized the recovery below. The parent reported all 37 copied files still byte-identical and no qa-saved entry. Parent source inspection indicated a protected-destination contract may intentionally refuse this same-root new-entry Save As; independent classification was pending. The misleading external-change wording is preserved as observed, without claiming a root cause or data loss. + +## Authorized recovery: save existing entry and Undo/Redo + +After the parent's disk check and explicit revised instructions: + +1. Clicked Save all to the existing copied `project.arcadia`. The application showed `All changes saved`, removed the title asterisk, and footer reported `All source files saved`. Exact QA name remained. Evidence: `10-save-existing-project-success.png`. +2. Pressed Ctrl+Z. Name returned to `Assess pressure alarm`, title gained the asterisk, and UI showed `Unsaved changes` / `Model change undone`. Evidence: `11-undo-original-unsaved.png`. +3. Pressed Ctrl+Y. Exact QA name returned, UI returned to `All changes saved`, and footer reported `Model change redone`. Evidence: `12-redo-renamed-saved.png`. +4. Clicked Save all again. After Working completed, footer reported `All source files saved`; saved status and exact QA name remained. Evidence: `13-save-after-redo.png`. + +No other authored edits were made. Parent subsequently reported its full 37-file oracle matched the pristine copy plus only the declared Activity name literal. Independent source/spec review classified the earlier refusal as intentional destination collision protection, with misleading external-change wording as a separate diagnostic issue. + +## Fresh-destination Save As + +Parent prepared `C:/ar-compact-01a0d717/.local/package39/working/saved/` with the seven non-source tutorial/evidence companions and no `.arcadia` files, then authorized another Save As. + +1. Clicked Save As and entered exactly `C:/ar-compact-01a0d717/.local/package39/working/saved/qa-saved.arcadia`. Evidence: `14-fresh-save-as-path.png`. +2. Clicked Save. After Working completed, the UI showed `All changes saved` and `All source files saved`; the exact QA name remained in the Inspector. Evidence: `15-fresh-save-as-success.png`. +3. Closed the application normally with Alt+F4. A subsequent fresh native window enumeration showed no extracted-package app window. No crash dialog was observed; exit status is the parent's watcher evidence. + +## Independent checks and continuation + +Parent reported first-process exit 0 with empty stdout/stderr, all 565 extracted-package files unchanged, and all 37 fresh-destination files matching the pristine bundle plus only the declared Activity name and relocated entry. The application wrote the 30 source files; parent had copied seven non-source companions. These are attributed parent checks, separate from this native review. + +The [second-process reopen/no-change Save](../native-reopen/review.md) was subsequently exercised successfully on the same extracted executable. It verifies the persisted exact name, alias, performer and model counts, Help return, no-edit Save completion and normal closure. The parent owns its post-close byte oracle and watcher results. The original protected-destination refusal and recovery above remain part of the evidence; no source corruption or atomicity failure is asserted from that refusal. diff --git a/harness/experiments/compact-help-20261001/package/native/started.json b/harness/experiments/compact-help-20261001/package/native/started.json new file mode 100644 index 00000000..97a143f0 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/native/started.json @@ -0,0 +1,14 @@ +{ + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "package_source": "ea23e229260d7d050b3c3b88e77c3a851e936abe", + "start": "2026-10-02T00:53:58.506330+00:00", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-studio.exe" + ], + "cwd": "C:\\ar-compact-01a0d717\\.local\\package39\\working", + "path": "C:\\Windows\\System32;C:\\Windows", + "platform": "Windows-11-10.0.26200-SP0", + "binary_sha256": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "pid": 8120 +} diff --git a/harness/experiments/compact-help-20261001/package/native/stderr.log b/harness/experiments/compact-help-20261001/package/native/stderr.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/native/stdout.log b/harness/experiments/compact-help-20261001/package/native/stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/package.json b/harness/experiments/compact-help-20261001/package/package.json new file mode 100644 index 00000000..4af78981 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/package.json @@ -0,0 +1,685 @@ +{ + "version": "0.2.0-preview.compact-help.20261001", + "target": "x86_64-pc-windows-gnullvm", + "acceptance": "Packaging integrity only; native clean-environment verification required.", + "build": "Prebuilt inputs supplied by caller; this script does not establish build profile or source revision.", + "build_evidence": { + "assertion": "Caller-supplied build evidence; target and binary hashes checked, source/compiler/profile statements not inferred or independently proven by packaging.", + "evidence": { + "source_identity": "Desktop: 6e7c4ddaf0775198384a8c4882809ea8e14b2976; unchanged reused server: 715036e132677dd2bc2fb37ed316d93dc9987aec; package documentation: ea23e229260d7d050b3c3b88e77c3a851e936abe", + "profile": "dev, unoptimized, debug assertions enabled", + "compiler": "rustc 1.98.1 (48a229cea 2026-09-01)", + "target": "x86_64-pc-windows-gnullvm", + "binary_sha256": { + "arcadia-studio.exe": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237" + }, + "binary_origins": { + "arcadia-studio.exe": { + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "build_command": "cargo build --locked -p oa-desktop --bin arcadia-studio", + "evidence": "harness/experiments/compact-help-20260925/candidate-6e7c/build.log", + "native_evidence": "harness/compact-help-validation-20261001.md" + }, + "arcadia-server.exe": { + "source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "reuse": true, + "release": "v0.2.0-preview.integrated.20260924", + "original_build_evidence": { + "source_identity": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "profile": "dev", + "target": "x86_64-pc-windows-gnullvm", + "compiler": "rustc 1.98.1 (48a229cea 2026-09-01)", + "binary_sha256": { + "arcadia-studio.exe": "2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237" + }, + "mandatory_gate": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\summary.json", + "bytes": 10594, + "sha256": "8b655c429b4abdeec0476a8397565fcd07682642f1d7b87e9a0c4eec63e22fc9" + }, + "source_manifest": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\inputs-before.json", + "bytes": 1740725, + "sha256": "38e4f7d37b67b06b7991d48560c5bd56ec5893909f3cffd224442d15bdc35f88" + }, + "environment": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\environment.json", + "bytes": 8981, + "sha256": "d9d89bc52a9312044e277f92b1585350fc86d5cc963dd91a39c669bc6ca2f39f" + }, + "artifact_relocation": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\artifact-relocation.json", + "bytes": 6181, + "sha256": "3298225b9890aab1a8029a4d6dff42a8162f8d77f2c71bcdd379d25ebcb1f9d6" + }, + "scope": "Exact preserved CargoJSON-identified individual product builds from final04; supplemental combined build is separately recorded. Native/package acceptance is separate." + }, + "unchanged_input_check": "git diff --exit-code 715036e132677dd2bc2fb37ed316d93dc9987aec ea23e229260d7d050b3c3b88e77c3a851e936abe -- crates/oa-core crates/oa-server Cargo.toml Cargo.lock" + } + }, + "package_documentation_source": "ea23e229260d7d050b3c3b88e77c3a851e936abe", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "acceptance_scope": "Contribution gates and prior released-server evidence are separate from fresh packaged desktop/server checks; this is an unfinished Windows development preview, not complete OA/SA acceptance." + } + }, + "imports": { + "arcadia-studio.exe": [ + "advapi32.dll", + "api-ms-win-core-synch-l1-2-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-math-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "bcrypt.dll", + "bcryptprimitives.dll", + "dwmapi.dll", + "gdi32.dll", + "imm32.dll", + "kernel32.dll", + "libunwind.dll", + "ntdll.dll", + "ole32.dll", + "oleaut32.dll", + "opengl32.dll", + "shell32.dll", + "user32.dll", + "uxtheme.dll", + "ws2_32.dll" + ], + "arcadia-server.exe": [ + "api-ms-win-core-synch-l1-2-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-math-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "bcryptprimitives.dll", + "kernel32.dll", + "libunwind.dll", + "ntdll.dll", + "ws2_32.dll" + ], + "libunwind.dll": [ + "api-ms-win-crt-convert-l1-1-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-filesystem-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "kernel32.dll" + ] + }, + "input_sha256": { + "arcadia-studio.exe": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237", + "libunwind.dll": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "licenses/llvm-mingw-LICENSE.TXT": "8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee", + "LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "README.md": "597cfb8da873e019d2658420f18ec059f0185fa9106ff9eafe934dfdd6ed266b", + "deployment/Dockerfile": "72c04aef4ec879955ed3bdf315987553d018ef46e4b8f350f0f6fe380c453eb7", + "deployment/Dockerfile.dockerignore": "6bb7d7496110b11a531cb8cd923864c6610850a8f1c4de8a797f54c7156f29e1", + "deployment/arcadia-server.service": "1e6c6bb4065e25f8fe1d558a4ed0bbd4844782a4377c2482488db1e6f9cab01d", + "docs/api.html": "d06e32b3da838e519630a4151111bb40a383ccf294eb18443118a7498700a993", + "docs/api.rst": "d78f138d011dd0af28bd53a65d1d93381d031f680191779d4f3030a264eb2e74", + "docs/language.html": "77c14e548f5d2deea0c21a3a931347e1c87449f5be8503f6c51ceaef37be9a33", + "docs/language.rst": "7117a66e16b34cd6ce033532e984c7ca49b4611e296fb1c46c5f737fe9169ec6", + "docs/linux-packaging.md": "41a1bb1095801df37a1411341c5791d55ea8c365739314d599a60269ac4bc7a0", + "docs/openapi.json": "2ad69da52fb574435525990c906948ce54b1efd9247cdde8726969f382731790", + "docs/preview-human-checks.md": "50b56c328c22587e1187f6e614bc914210095cf635c301f335e82de11201b890", + "docs/research-v2-service.md": "4828df5bc679e7c71f49b4b85c9e7dacbec52f46d416fed48af70e08886d4e4e", + "docs/server.md": "4eb24937d424ba8b384e1734e02a6f8e963ae11d2715889c92b14b39ff2e4a48", + "docs/windows-packaging.md": "2d5ef8a9a8741e6e7f6df9db9fd9a839f806ea782a6f2063c3a98725ecfd36b6", + "examples/coastal-rescue.arcadia": "7e183ef9fd8154d3074303f1956cd0d9871c19e3ffc630d333b0bffbd6e30e17", + "examples/coastal-rescue.json": "242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195", + "examples/legacy-v1-coastal-rescue.arcadia": "4dbbbdf8bc7e6cb8e0a81dd678069dae585a9e5187c59bc3665e1fdab3f1a86a", + "examples/legacy-v1-coastal-rescue.oa.json": "fd0e9dedfb7adb922dc0575cc2b820d40344d639f1d8052bd70363aa59de9c24", + "examples/release1/README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "examples/release1/evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "examples/release1/expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "examples/release1/model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "examples/release1/model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "examples/release1/oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f", + "examples/release1/oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "examples/release1/oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "examples/release1/oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "examples/release1/oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "examples/release1/oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "examples/release1/oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "examples/release1/oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "examples/release1/oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "examples/release1/oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "examples/release1/oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "examples/release1/project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "examples/release1/sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "examples/release1/sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "examples/release1/sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "examples/release1/sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "examples/release1/sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "examples/release1/sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "examples/release1/sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "examples/release1/sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "examples/release1/sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c", + "examples/release1/sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "examples/release1/sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "examples/release1/sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "examples/release1/traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "examples/release1/transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "examples/release1/transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "examples/release1/views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "examples/release1/views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "examples/release1/views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "examples/release1/views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "examples/release1/views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230", + "examples/routing-workshop.arcadia": "dc6b75da72884d399132ed9e300fa5a26b73d802bb526c9af986ae9eeb0a646a", + "examples/routing-workshop.json": "8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14", + "examples/source-project/oa.arcadia": "5f60642f211b2d352a951092faeeb7503d4fb7f6f7fca99e810347231101d31c", + "examples/source-project/project.arcadia": "787f6b67b179ffd221f7e5faf1a4edd74cfd116aa1e3b5e9ed9f22fbff612d8d", + "examples/source-project/sa/assurance.arcadia": "ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f", + "examples/source-project/sa/participants.arcadia": "1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88", + "examples/source-project/sa/reporting.arcadia": "f0b7443f728912ca163de39b6055876b533a77feaa3219b2d40a2dd65712e058", + "examples/source-project/views.arcadia": "e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f", + "examples/text-first/README.md": "4ec8250d5ed556f1d496e8c85137e973e802ecb11df1a36488411e8cdc5a9f9e", + "examples/text-first/project.arcadia": "f441535c623e0cf20e1875eb2cd33b587ed00e078c37af39cb36d89bb5edc19a", + "licenses/dependencies/oa-core-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/oa-desktop-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/oa-server-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/iced_widget-0.14.2/ARCADIA-PATCH.md": "d3acb98e5f423970b0bf4198373efddaea6f3a51aa282da571cf95c0f5690504", + "licenses/dependencies/iced_widget-0.14.2/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/arrayref-0.3.9/LICENSE": "1bc7e6f475b3ec99b7e2643411950ae2368c250dd4c5c325f80f9811362a94a1", + "licenses/dependencies/arrayvec-0.7.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/arrayvec-0.7.8/LICENSE-MIT": "4da95ec4ecb65b738d470b7d762894ad9c97da93e6cbfb18b570fc2c96f4b871", + "licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-APACHE": "0e8a410375e1ee5c75c6198b08b534fec6e5edef766cf971bab4a404542636ab", + "licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-MIT": "c733ccf8ab25df175a63d9d844677b98e3a5ab8f8de1c1616087e6868a7f948e", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY": "6226d0632e2e1a80c23597e964da9812ae193c535fe058154afb034e94167aa5", + "licenses/dependencies/autocfg-1.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/autocfg-1.5.1/LICENSE-MIT": "27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac", + "licenses/dependencies/axum-core-0.5.6/LICENSE": "008c87afcd2e626eaf564093250bed06dd7efb5732113264bba3dda8f1c556a1", + "licenses/dependencies/axum-0.8.9/LICENSE": "6a13bc24a100a6812f053879ec51b126b103af7cda6dbf48c4188722da44da9f", + "licenses/dependencies/base64-0.22.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/base64-0.22.1/LICENSE-MIT": "0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7", + "licenses/dependencies/bit-set-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/bit-set-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7", + "licenses/dependencies/bit-vec-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/bit-vec-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7", + "licenses/dependencies/bitflags-2.13.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/bitflags-2.13.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/bytes-1.12.1/LICENSE": "45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42", + "licenses/dependencies/cc-1.4.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cc-1.4.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/cfg_aliases-0.2.2/LICENSE": "31b94860253d8ec7b4529f51901044d3b459d6292d996504a36b1bae3a36a812", + "licenses/dependencies/cfg-if-1.0.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cfg-if-1.0.4/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/chacha20-0.10.2/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5", + "licenses/dependencies/chacha20-0.10.2/LICENSE-MIT": "b8c6939380a400f53e11923d50fcc4dd2fa1ba8339fd9d04cda38a0251b6c9b0", + "licenses/dependencies/clipboard-win-5.4.1/supplement/DoumanAsh-clipboard-win-3b27cf2bfd1a-LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/codespan-reporting-0.12.0/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/core_maths-0.1.1/LICENSE": "9ebf8c4cc0b735ca13a766451f7b8097db3185975ceb2ba94b5abf439156a91f", + "licenses/dependencies/cosmic-text-0.15.0/fonts/FiraMono-LICENSE": "587dd9548304fd421cd254f7550bd101c1250ffc95417f2f7f92d55b44ecbe53", + "licenses/dependencies/cosmic-text-0.15.0/fonts/Inter-LICENSE": "3c8d13d97ea5eb62868833a377034c6be6a9833e768d32abec2a767a8101e4bc", + "licenses/dependencies/cosmic-text-0.15.0/fonts/NotoSans-LICENSE": "5ec4347054089def6904da61d04f0360968f9ef36634b1fe007a5b6ec2f7aa96", + "licenses/dependencies/cosmic-text-0.15.0/LICENSE-APACHE": "000b4962e6b27176a0ff89cce4be555b16472cafb5671eb2804a8fdac6854793", + "licenses/dependencies/cosmic-text-0.15.0/LICENSE-MIT": "95557bafe728379e206f3b6d4aceeaa054d271c71d722411a6222e2dec01138c", + "licenses/dependencies/cpufeatures-0.3.1/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5", + "licenses/dependencies/cpufeatures-0.3.1/LICENSE-MIT": "73b9dc2e79c7308998dd30296e073aefaefb944a68fb89aa412c23c0edcabcaa", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-ZLIB": "b3ec01ad0869c5c50937bc68780cd0bb44e235ad858dfa54a7a381dced9b115a", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-APACHE": "b59affd015e517ed998dd735757f9a3693643cd389609947ed54074234a10784", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-MIT": "c138726a726ac37bae09d0f8a48e74e8e3aa8a8952fcd10fae0fb224cc1c05f1", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-ZLIB": "01e533bd94e8f1c32b2c2531e2c398de7d35d7804add3d574b4e1fe581d53537", + "licenses/dependencies/displaydoc-0.2.7/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/displaydoc-0.2.7/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/document-features-0.2.12/LICENSE-APACHE": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff", + "licenses/dependencies/document-features-0.2.12/LICENSE-MIT": "aa893340d14b9844625be6a50ac644169a01b52f0211cbf81b09e1874c8cd81d", + "licenses/dependencies/dpi-0.1.2/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a", + "licenses/dependencies/dpi-0.1.2/LICENSE-LIBM-MIT": "9eff396a99bafd208e7126602420d6864f6066c08b84485a5b032320a9c01997", + "licenses/dependencies/equivalent-1.0.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/equivalent-1.0.2/LICENSE-MIT": "7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349", + "licenses/dependencies/error-code-3.4.0/LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/etagere-0.2.15/LICENSE-APACHE": "2d56a37f3d1e461f6b1539ab94e0e6bcc55443e376098aee85ac3b2890860290", + "licenses/dependencies/etagere-0.2.15/LICENSE-MIT": "9cfc9c9a4608501b5da3746948d2be2dd709ad51f6bcb0c1c685760ee3dde31f", + "licenses/dependencies/euclid-0.22.14/COPYRIGHT": "ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a", + "licenses/dependencies/euclid-0.22.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/euclid-0.22.14/LICENSE-MIT": "62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3", + "licenses/dependencies/fastrand-2.5.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/fastrand-2.5.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/float_next_after-1.0.0/LICENSE": "0604d5817110dacc5c7d9b7de6b58b962794603d4823c357157bd5dec4198bc5", + "licenses/dependencies/foldhash-0.1.5/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744", + "licenses/dependencies/foldhash-0.2.0/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744", + "licenses/dependencies/font-types-0.10.1/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/font-types-0.10.1/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/font-types-0.12.4/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/font-types-0.12.4/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/fontdb-0.23.0/LICENSE": "59a1fdac3bd550043599bd159fd70f09a1108c2b09e3751d39b11e1ff8e51f00", + "licenses/dependencies/fontdb-0.23.0/tests/fonts/LICENSE.txt": "b84fdd2c3da5db56385cdbb639795e90aa3e035c53bc3591135f18df3331451f", + "licenses/dependencies/form_urlencoded-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/form_urlencoded-1.2.2/LICENSE-MIT": "20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e", + "licenses/dependencies/futures-channel-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-channel-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-core-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-core-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-executor-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-executor-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-io-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-io-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-macro-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-macro-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-sink-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-sink-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-task-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-task-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-util-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-util-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/getrandom-0.2.17/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf", + "licenses/dependencies/getrandom-0.2.17/LICENSE-MIT": "42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737", + "licenses/dependencies/getrandom-0.4.3/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf", + "licenses/dependencies/getrandom-0.4.3/LICENSE-MIT": "523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b", + "licenses/dependencies/gl_generator-0.14.0/supplement/brendanzab-gl-rs-ea503e8d5fb6-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/glam-0.25.0/LICENSE-APACHE": "be33ddb87a30fd321ab100e2d922cba512e50ec7a63d8e62e5bfc0798dd4b585", + "licenses/dependencies/glam-0.25.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/glow-0.16.0/LICENSE-APACHE": "b8601fc79bdf8d8088f0938bea861ffc63ed0eebbedf25f44ab2cf2e85bd7edc", + "licenses/dependencies/glow-0.16.0/LICENSE-MIT": "cdbd06e25b8c9c5d6019949d2de8123f56d29cee4166396423d2ba8c81700845", + "licenses/dependencies/glow-0.16.0/LICENSE-ZLIB": "636f644f1e149eb62961657c0e34953681eff64435653912e7bd19992666faa5", + "licenses/dependencies/glutin_wgl_sys-0.6.1/LICENSE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4", + "licenses/dependencies/gpu-alloc-types-0.3.1/supplement/zakarumych-gpu-alloc-7ddd1fe576fc-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314", + "licenses/dependencies/gpu-alloc-0.6.2/supplement/zakarumych-gpu-alloc-61020bdcb4eb-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314", + "licenses/dependencies/gpu-allocator-0.27.0/LICENSE-APACHE": "0178e21322b0e88aa3aeb3146f6a9611bc1f8df6d98bdfb34be28b9dd56a8107", + "licenses/dependencies/gpu-allocator-0.27.0/LICENSE-MIT": "ad41be6cc6538b29b9346648f41432b5e460bad6be073b5eeaa41320ea2921dc", + "licenses/dependencies/gpu-descriptor-types-0.2.0/supplement/zakarumych-gpu-descriptor-9f2fb9546591-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613", + "licenses/dependencies/gpu-descriptor-0.3.2/supplement/zakarumych-gpu-descriptor-bb28b4e55b74-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613", + "licenses/dependencies/guillotiere-0.6.2/LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1", + "licenses/dependencies/half-2.7.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/half-2.7.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1", + "licenses/dependencies/harfrust-0.3.2/LICENSE": "7d43d2ef1ce976c7bfb423c696ad9938ccfc31e9ec5be752265e43fe9d29f697", + "licenses/dependencies/harfrust-0.3.2/scripts/ms-use/COPYING": "9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b", + "licenses/dependencies/hashbrown-0.15.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.15.5/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hashbrown-0.16.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.16.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hashbrown-0.17.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.17.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hexf-parse-0.2.1/supplement/CC0-1.0.txt": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499", + "licenses/dependencies/hexf-parse-0.2.1/supplement/hexf-parse-0.2.1-Cargo.toml": "4a56dbdbc12054fd33b7a2634a45cbbe6fe12f5e6f4081002cbfa527f7220c70", + "licenses/dependencies/http-body-util-0.1.5/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab", + "licenses/dependencies/http-body-1.1.0/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab", + "licenses/dependencies/http-1.5.0/LICENSE-APACHE": "8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a", + "licenses/dependencies/http-1.5.0/LICENSE-MIT": "dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff", + "licenses/dependencies/httparse-1.10.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/httparse-1.10.1/LICENSE-MIT": "391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3", + "licenses/dependencies/httpdate-1.0.3/LICENSE-APACHE": "4d10fe5f3aa176b05b229a248866bad70b834c173f1252a814ff4748d8a13837", + "licenses/dependencies/httpdate-1.0.3/LICENSE-MIT": "934887691e05d69d7c86ad3f2c360980fa30c15b035e351f3c9865e99da4debc", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c", + "licenses/dependencies/hyper-util-0.1.20/LICENSE": "9e0a97848ea543aef745c98e84fde696a9a3e0735538f6daefdd3cb1942effc1", + "licenses/dependencies/hyper-1.11.1/LICENSE": "2d01890414494742ba4a509fcec8efa40f6d8be22cbd72be7cff08d6fda4ec89", + "licenses/dependencies/iced_core-0.14.0/src/layout/DRUID_LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/iced_core-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_debug-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_futures-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/Fira-OFL.txt": "99bfb7c1e845b79d1031fcf37e678178eb4a8c7cc74a3f218ddf7223083a6fcd", + "licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/FiraSans-Regular-NOTICE.txt": "1e0baaa389b1647d06322ac9ea37822f31995408200ae5a2805a6b9bea0810d1", + "licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/Iced-Icons-NOTICE.txt": "8175634e30f84ef72a24c4965fb0e87f45a3c1274cc0e79e0473af582cffd1c4", + "licenses/dependencies/iced_program-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_renderer-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_runtime-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_tiny_skia-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_wgpu-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_winit-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced-0.14.0/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/icu_collections-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_locale_core-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_normalizer_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_normalizer-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_properties_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_properties-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_provider-2.3.1/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/idna_adapter-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/idna_adapter-1.2.2/LICENSE-MIT": "8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726", + "licenses/dependencies/idna-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/idna-1.1.0/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/indexmap-2.14.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/indexmap-2.14.1/LICENSE-MIT": "ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055", + "licenses/dependencies/ipnet-2.12.1/LICENSE-APACHE": "87d9feb9238c6bd8e0024fc4733b06cff036f89f36d93b7df1c8a0549bbb7a5b", + "licenses/dependencies/ipnet-2.12.1/LICENSE-MIT": "47dc9ff29128ddfb4d6a0435383c9f89120bc374dbcc1dd00b933a0b28aa7865", + "licenses/dependencies/itoa-1.0.18/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/itoa-1.0.18/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/jobserver-0.1.35/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/jobserver-0.1.35/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/khronos_api-3.1.0/supplement/brendanzab-gl-rs-f150967b1c44-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/khronos-egl-6.0.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/khronos-egl-6.0.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/kurbo-0.10.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/kurbo-0.10.4/LICENSE-MIT": "23c23145f6eac25c28cdcc03d38506a5712a9a8cffb5bd5301457f6173ea696e", + "licenses/dependencies/libc-0.2.189/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/libc-0.2.189/LICENSE-MIT": "123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e", + "licenses/dependencies/libloading-0.8.9/LICENSE": "b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f", + "licenses/dependencies/libm-0.2.16/LICENSE.txt": "3823dda7cf046602f4b4e77ec8e227863dc4736037cc85bb33d9f19febe16bb7", + "licenses/dependencies/lilt-0.8.2/LICENSE": "120b2f21f9b9f98ef4159de09f9a55a3afb6733dd1c0b1d9eeec7f136465b2cd", + "licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1", + "licenses/dependencies/litemap-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/litrs-1.0.0/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/litrs-1.0.0/LICENSE-MIT": "7dc1552e88f49132cb358b1b962fc5e79fa42d70bcbb88c526d33e45b8e98036", + "licenses/dependencies/lock_api-0.4.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/lock_api-0.4.14/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/log-0.4.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/log-0.4.34/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-MIT": "1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-ZLIB": "09785877275ffada6c371b652a30e95c26b435126fc0fc62f1bc2d72171f80a4", + "licenses/dependencies/lru-0.16.4/LICENSE": "061dc50af2cd9340703daf61978af3200cf681b12ea67a323c33ba109a23a45e", + "licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/matchit-0.8.4/LICENSE": "de701d0618d694feb1af90f02181a1763d9b0bdeb70a3a592781e529077dba65", + "licenses/dependencies/matchit-0.8.4/LICENSE.httprouter": "162ce11ad71338d0a0c6ebaf5c48af72c6ae237b468859d3656fe2d9ed3f3a85", + "licenses/dependencies/memchr-2.8.3/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/memchr-2.8.3/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f", + "licenses/dependencies/memchr-2.8.3/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/memmap2-0.9.11/LICENSE-APACHE": "04ea4849dba9dcae07113850c6f1b1a69052c625210639914eee352023f750ad", + "licenses/dependencies/memmap2-0.9.11/LICENSE-MIT": "0d25d03b5ab49576178ad0cae7a2648d12c17ad0452fe49c07e55e4b59aa5257", + "licenses/dependencies/mime-0.3.17/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/mime-0.3.17/LICENSE-MIT": "df9cfd06d8a44d9a671eadd39ffd97f166481da015a30f45dfd27886209c5922", + "licenses/dependencies/mio-1.2.3/LICENSE": "07919255c7e04793d8ea760d6c2ce32d19f9ff02bdbdde3ce90b1e1880929a9b", + "licenses/dependencies/naga-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/naga-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/num-bigint-0.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-bigint-0.5.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/num-integer-0.1.47/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-integer-0.1.47/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/num-traits-0.2.19/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-traits-0.2.19/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/once_cell-1.21.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/once_cell-1.21.4/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/ordered-float-5.5.0/LICENSE-MIT": "f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4", + "licenses/dependencies/parking_lot_core-0.9.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/parking_lot_core-0.9.12/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/parking_lot-0.12.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/parking_lot-0.12.5/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/percent-encoding-2.3.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/percent-encoding-2.3.2/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/pin-project-lite-0.2.17/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/pkg-config-0.3.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/pkg-config-0.3.34/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/potential_utf-0.1.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/presser-0.3.1/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/presser-0.3.1/LICENSE-MIT": "090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b", + "licenses/dependencies/proc-macro2-1.0.107/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/proc-macro2-1.0.107/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-APACHE": "10d30a673cd5e9349bdc02aeb48f14b3386d27d0da32df8f0a555d4aa16aa551", + "licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-MIT": "c8167fdeeed46d3f244d3f85c5bf998ce889343691c32be2c61a8bc4b5c08333", + "licenses/dependencies/quinn-proto-0.11.17/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-proto-0.11.17/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quinn-udp-0.5.15/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-udp-0.5.15/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quinn-0.11.11/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-0.11.11/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quote-1.0.47/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/quote-1.0.47/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/rand_core-0.10.1/COPYRIGHT": "92b81db30f7ab6d693e0af5661a40d273ca1947e891123ed823924192c10cbc7", + "licenses/dependencies/rand_core-0.10.1/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51", + "licenses/dependencies/rand_core-0.10.1/LICENSE-MIT": "8b6e9feec03e7c9a5facb26855cecd31662bf989b636bcfe79521bdf8ac863f0", + "licenses/dependencies/rand_pcg-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5", + "licenses/dependencies/rand_pcg-0.10.2/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51", + "licenses/dependencies/rand_pcg-0.10.2/LICENSE-MIT": "2234e3cefee876aeb686ad89e978bdb07bf118a1186ab1cf161bcdf69d4b4f57", + "licenses/dependencies/rand-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5", + "licenses/dependencies/rand-0.10.2/LICENSE-APACHE": "35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab", + "licenses/dependencies/rand-0.10.2/LICENSE-MIT": "209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b", + "licenses/dependencies/range-alloc-0.1.5/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/range-alloc-0.1.5/LICENSE.MIT": "ba00052102ed87948bb8822d6e1c496260c83042887b22bb5caad922ec025a60", + "licenses/dependencies/rangemap-1.8.0/LICENSE-APACHE": "1c7745cc26c7294bc9dbc883bcd50700b99a8c0f4859bfce84ec555098ce1ab5", + "licenses/dependencies/rangemap-1.8.0/LICENSE-MIT": "29a4c3823ee29ee5a97c145574a1bac20629fd5e6708be1df0d25bab563e093c", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-APACHE.md": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-MIT.md": "9c5a80639a57c1c945570e7ebbca0706305849ce3c098021325cca9db2f7acc4", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-ZLIB.md": "ae895c8576e682f310fb70d93d9f99b1dd82872094c54a8f6cdfe2ca5c2d6ecb", + "licenses/dependencies/read-fonts-0.35.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/read-fonts-0.35.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/read-fonts-0.41.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/read-fonts-0.41.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-MIT": "24b2f2eff5a7622e87162823e260f00c6dfbce0e26d585d3d28c785f1edc80ed", + "licenses/dependencies/reqwest-0.12.28/LICENSE-APACHE": "751963a8b88c0e3a9f27e98933079fbcf09b9998b2c13ac49c2e4d58444520d6", + "licenses/dependencies/reqwest-0.12.28/LICENSE-MIT": "47d4e1803702728e03d30f8a848ae2249ba274bbd9f8443e803f7924d83cd371", + "licenses/dependencies/rfd-0.15.4/LICENSE": "65fc947f4bac882a2cd104ef73c246b1b037059df9f2b3a58b7f77f0b9e56071", + "licenses/dependencies/ring-0.17.14/LICENSE": "b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a", + "licenses/dependencies/ring-0.17.14/LICENSE-BoringSSL": "005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d", + "licenses/dependencies/ring-0.17.14/LICENSE-other-bits": "f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f", + "licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-MIT": "6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc", + "licenses/dependencies/ring-0.17.14/third_party/fiat/LICENSE": "9eacbcb81be660840c714a560a9d65ba07913db98dd4baf969f78dd499fdd60f", + "licenses/dependencies/rustc-hash-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/rustc-hash-1.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/rustc-hash-2.1.3/LICENSE-APACHE": "95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc", + "licenses/dependencies/rustc-hash-2.1.3/LICENSE-MIT": "30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652", + "licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-APACHE": "45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742", + "licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-MIT": "9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639", + "licenses/dependencies/rustls-webpki-0.103.15/LICENSE": "5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a", + "licenses/dependencies/rustls-0.23.43/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/rustls-0.23.43/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4", + "licenses/dependencies/rustls-0.23.43/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c", + "licenses/dependencies/ryu-1.0.23/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/ryu-1.0.23/LICENSE-BOOST": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/same-file-1.0.6/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/same-file-1.0.6/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14", + "licenses/dependencies/same-file-1.0.6/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/scopeguard-1.2.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/scopeguard-1.2.0/LICENSE-MIT": "fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7", + "licenses/dependencies/self_cell-1.3.0/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/self_cell-1.3.0/LICENSE-GPLv2": "f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505", + "licenses/dependencies/serde_core-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_core-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_derive-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_derive-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_json-1.0.151/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_json-1.0.151/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-MIT": "b9eb266294324f672cbe945fe8f2e32f85024f0d61a1a7d14382cdde0ac44769", + "licenses/dependencies/serde-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/sha1_smol-1.0.1/LICENSE": "282a21b0710441c364025461a447362daf18f5798a7b72ae2f801a2aa536da51", + "licenses/dependencies/shlex-2.0.1/LICENSE-APACHE": "553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583", + "licenses/dependencies/shlex-2.0.1/LICENSE-MIT": "4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1", + "licenses/dependencies/skrifa-0.37.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/skrifa-0.37.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/skrifa-0.44.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/skrifa-0.44.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/slab-0.4.12/LICENSE": "8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18", + "licenses/dependencies/slotmap-1.1.1/LICENSE": "6cec81441b2ab2b5090954c1fb5d0bcca81b86487b5849061fa8952d20ef67d4", + "licenses/dependencies/smallvec-1.16.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/smallvec-1.16.0/LICENSE-MIT": "0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9", + "licenses/dependencies/smol_str-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/smol_str-0.2.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/socket2-0.6.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/socket2-0.6.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/softbuffer-0.4.8/LICENSE-APACHE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4", + "licenses/dependencies/softbuffer-0.4.8/LICENSE-MIT": "0463bfa47d6d763d8c824333efb0e6d6df3946c13c3b077c78ed9f23ca50d0f2", + "licenses/dependencies/spirv-0.3.0+sdk-1.3.268.0/supplement/gfx-rs-rspirv-e91a5debc10c-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT": "5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7", + "licenses/dependencies/static_assertions-1.1.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/static_assertions-1.1.0/LICENSE-MIT": "ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061", + "licenses/dependencies/strict-num-0.1.1/LICENSE": "3085885678bb161f6c472bbd331f66a2550b555eb76128f7f8247779128199c0", + "licenses/dependencies/subtle-2.6.1/LICENSE": "d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b", + "licenses/dependencies/svg_fmt-0.4.5/supplement/nical-rust_debug-93f414cd572b-LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1", + "licenses/dependencies/swash-0.2.10/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/swash-0.2.10/LICENSE-MIT": "122dadfc2eb4de0f4bafcd9eb4e7502cfe338a7965ebd1d18708cc5050f43f76", + "licenses/dependencies/syn-2.0.119/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/syn-2.0.119/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/syn-3.0.5/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/syn-3.0.5/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/sync_wrapper-1.0.2/LICENSE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/synstructure-0.13.2/LICENSE": "219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59", + "licenses/dependencies/sys-locale-0.3.2/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/sys-locale-0.3.2/LICENSE-MIT": "5cc390ab5e5e6507f467368cbab1297552d64bfd863f4b496c7928508bcfefd8", + "licenses/dependencies/tempfile-3.27.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/tempfile-3.27.0/LICENSE-MIT": "8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36", + "licenses/dependencies/termcolor-1.4.1/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/termcolor-1.4.1/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f", + "licenses/dependencies/termcolor-1.4.1/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/thiserror-impl-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-impl-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-impl-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/tiny-skia-path-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced", + "licenses/dependencies/tiny-skia-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced", + "licenses/dependencies/tinystr-0.8.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md": "4f44572785f35152c1fd2eadf565b7e079c0f300b4324f0af653419f9d76b735", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md": "1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md": "41ace205715d9f19a3214218cc1c01d57c533e02cd0fef7c8e51a49a7fce5ac5", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-MIT.md": "fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/tokio-macros-2.7.2/LICENSE": "0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9", + "licenses/dependencies/tokio-rustls-0.26.5/LICENSE-APACHE": "cc117d90b498b32b11a886f279b359da16a73c3b01efbb2f5cc004b20262334e", + "licenses/dependencies/tokio-rustls-0.26.5/LICENSE-MIT": "e20fa2b8e0a2565f24a792b94b4bf4b6c2b9d36f781d8a9516e218a036e6677a", + "licenses/dependencies/tokio-1.53.1/LICENSE": "253cd04c6714889df2d32f3f64d669179a1c95c76ac43c40882c52eb06bc3552", + "licenses/dependencies/tower-http-0.6.11/LICENSE": "5049cf464977eff4b4fcfa7988d84e74116956a3eb9d5f1d451b3f828f945233", + "licenses/dependencies/tower-layer-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tower-service-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tower-0.5.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tracing-attributes-0.1.31/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-core-0.1.36/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-core-0.1.36/src/spin/LICENSE": "58545fed1565e42d687aecec6897d35c6d37ccb71479a137c0deb2203e125c79", + "licenses/dependencies/tracing-0.1.44/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/try-lock-0.2.5/LICENSE": "c816a0749cdc6bf062a5111c159723de51b2bfac66a1dac2655abd9e6b1583eb", + "licenses/dependencies/ttf-parser-0.25.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/ttf-parser-0.25.1/LICENSE-MIT": "f3c9fe731c701ed77fd5fbaac573872af04dc5869385eb9bd5e3c73c42713814", + "licenses/dependencies/ttf-parser-0.25.1/tests/fonts/colr_1_LICENSE": "58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd", + "licenses/dependencies/unicode-bidi-0.3.18/COPYRIGHT": "edb20b474f6cbd4f4db066b54a9e0f687d0009d309412a63431189b59b8e2a07", + "licenses/dependencies/unicode-bidi-0.3.18/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-bidi-0.3.18/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE": "f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1", + "licenses/dependencies/unicode-linebreak-0.1.5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/unicode-script-0.5.8/LICENSE-APACHE": "7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737", + "licenses/dependencies/unicode-script-0.5.8/LICENSE-MIT": "7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c", + "licenses/dependencies/unicode-segmentation-1.13.3/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d", + "licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/unicode-width-0.2.2/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d", + "licenses/dependencies/unicode-width-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-width-0.2.2/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/untrusted-0.9.0/LICENSE.txt": "7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621", + "licenses/dependencies/url-2.5.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/url-2.5.8/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/utf8_iter-1.0.4/COPYRIGHT": "c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c", + "licenses/dependencies/utf8_iter-1.0.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/utf8_iter-1.0.4/LICENSE-MIT": "3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c", + "licenses/dependencies/uuid-1.26.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/uuid-1.26.0/LICENSE-MIT": "436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d", + "licenses/dependencies/version_check-0.9.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/version_check-0.9.5/LICENSE-MIT": "b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e", + "licenses/dependencies/want-0.3.1/LICENSE": "a65f5d0a945d267751344c95665945b90c030ea107faf5c85d518929886187da", + "licenses/dependencies/web-time-1.1.0/LICENSE-APACHE": "54a744942eb3fa63a74d8d359989ed6962c04f3f10ff20cfa08ff8aa7efbe4e6", + "licenses/dependencies/web-time-1.1.0/LICENSE-MIT": "f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b", + "licenses/dependencies/webpki-roots-1.0.9/LICENSE": "e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8", + "licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-core-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-core-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-hal-27.0.4/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-hal-27.0.4/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-types-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-types-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/winapi-util-0.1.11/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/winapi-util-0.1.11/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14", + "licenses/dependencies/winapi-util-0.1.11/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/window_clipboard-0.5.1/LICENSE": "7faec985f3e9b1c4a1df646bfedc304ba67e409447f7ab7f4f591f68708d85dc", + "licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-core-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-core-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-implement-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-implement-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-interface-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-interface-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-link-0.2.1/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-link-0.2.1/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-result-0.2.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-result-0.2.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-strings-0.1.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-strings-0.1.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.52.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.52.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.59.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.59.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.61.2/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.61.2/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-targets-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-targets-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/winit-0.30.13/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a", + "licenses/dependencies/writeable-0.6.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/xml-rs-0.8.29/LICENSE": "0dc18d924dc0a5f41172a393012843a5eaaef338e795b3645da9cc3b6068220b", + "licenses/dependencies/yazi-0.2.1/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c", + "licenses/dependencies/yazi-0.2.1/LICENSE-MIT": "df62e3ef3f207c91073fedd78b4156a278681d0dd3f942379242c62c6a71a3ec", + "licenses/dependencies/yoke-derive-0.8.2/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/yoke-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zeno-0.3.3/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c", + "licenses/dependencies/zeno-0.3.3/LICENSE-MIT": "34dff8202d63e6df022f4f0ce88dab24f254c35ee0d5958b74dcf74d9eae21cc", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df", + "licenses/dependencies/zerofrom-derive-0.1.7/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerofrom-0.1.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zeroize-1.9.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/zeroize-1.9.0/LICENSE-MIT": "8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b", + "licenses/dependencies/zerotrie-0.2.5/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerovec-derive-0.11.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerovec-0.11.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zmij-1.0.23/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/rust/COPYRIGHT.html": "5b0c93fc4e6d4b072eaa521b1762d1e746f4c368f65e81a0e5308e2772dac85e", + "licenses/rust/COPYRIGHT-library.html": "68129500b616d5838629e68f55ff3aed5e096dacf60ce9eb41bbe599a563afa6", + "licenses/rust/COPYING3": "8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903", + "licenses/rust/COPYING.RUNTIME": "28e85c5aa4af9b4f1dfe6b4817aa3eefb3eaaee7fd735045016f29ccf50276a1", + "licenses/llvm-libunwind/llvm-ea7d852a70e8-libunwind-LICENSE.TXT": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d" + } +} diff --git a/harness/experiments/compact-help-20261001/package/packaging.log b/harness/experiments/compact-help-20261001/package/packaging.log new file mode 100644 index 00000000..d8a74e12 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/packaging.log @@ -0,0 +1,7 @@ + +Directory : C:\ar-compact-01a0d717\.local\package39\dist\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm +Archive : C:\ar-compact-01a0d717\.local\package39\dist\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip +SHA256 : 18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2 +Files : 565 +NativeAcceptance : Pending + diff --git a/harness/experiments/compact-help-20261001/package/read-model-warnings.py b/harness/experiments/compact-help-20261001/package/read-model-warnings.py new file mode 100644 index 00000000..44cb8bb2 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/read-model-warnings.py @@ -0,0 +1,30 @@ +from pathlib import Path +import http.client,json,os,socket,subprocess,time +root=Path(__file__).resolve().parent +proof=json.loads((root/'extraction-check.json').read_text(encoding='utf-8')) +prior=json.loads((root/'native-model-oracle/result.json').read_text(encoding='utf-8')) +run=root/'model-warnings';run.mkdir(exist_ok=False) +exe=Path(proof['bundle'])/'arcadia-server.exe' +env=os.environ.copy();system=os.environ['SystemRoot'];env['PATH']=system+'/System32;'+system +for k in list(env): + if k.startswith(('CARGO_','RUST','LLVM','WGPU','ARCADIA_')):del env[k] +with socket.socket() as s:s.bind(('127.0.0.1',0));port=s.getsockname()[1] +cmd=[str(exe),'--bind',f'127.0.0.1:{port}','--data-dir',str(root/'native-model-oracle/store')] +records=[] +with (run/'stdout.log').open('xb') as out,(run/'stderr.log').open('xb') as err: + p=subprocess.Popen(cmd,cwd=run,env=env,stdout=out,stderr=err,creationflags=subprocess.CREATE_NO_WINDOW) + try: + for _ in range(100): + assert p.poll() is None + try: + with socket.create_connection(('127.0.0.1',port),timeout=.1):break + except OSError:time.sleep(.1) + for label,rid in zip(['pristine','saved'],prior['resource_ids']): + path='/api/v1/projects/'+rid+'/validation' + c=http.client.HTTPConnection('127.0.0.1',port,timeout=10);c.request('GET',path,headers={'Connection':'close'}) + r=c.getresponse();data=r.read();assert r.status==200;c.close() + (run/(label+'.json')).write_bytes(data) + records.append({'label':label,'path':path,'response':json.loads(data)}) + finally:p.terminate();code=p.wait(timeout=15) +(run/'result.json').write_text(json.dumps({'command':cmd,'pid':p.pid,'exit':code,'records':records},indent=2)+'\n',encoding='utf-8') +print(json.dumps(records,indent=2,ensure_ascii=True)) diff --git a/harness/experiments/compact-help-20261001/package/saved-source/oa/activities/activity_oa_restore_work.arcadia b/harness/experiments/compact-help-20261001/package/saved-source/oa/activities/activity_oa_restore_work.arcadia new file mode 100644 index 00000000..fe5cd97f --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/saved-source/oa/activities/activity_oa_restore_work.arcadia @@ -0,0 +1,36 @@ +oa_activity oa_restore_work "Restore safe pressure" id "1b91f8a7-0bdb-514e-b1cd-955658e09927" { +} + +oa_activity oa_assess "Assess pressure alarm QA LEFT XYRIGHT" id "61f7bbfb-74a4-5540-9182-2583dfb27a49" { + parent @oa_restore_work; +} + +oa_activity oa_confirm "Confirm safe pressure" id "727c0b5c-8db6-5eb7-83d6-735519c5949f" { + parent @oa_restore_work; +} + +oa_activity oa_repair "Repair valve in the field" id "a21465af-05f3-5fb5-8983-de26932422fb" { + parent @oa_restore_work; +} + +oa_activity oa_reset "Reset valve remotely" id "d0c8be87-d238-503a-a549-7558a210507f" { + parent @oa_restore_work; +} + +capability_involvement oa_assessment_support "Capability involvement: Assess an alarm" id "ffdbfcd0-d423-5707-a880-0dfbe1400f72" { + source @oa_assess; + target @oa_triage; +} + +interaction oa_repair_request "Request field repair" id "cf423ea2-8b2e-5a27-93d4-5e8542d9db8d" { + items [@oa_repair_operation]; + source @oa_assess; + target @oa_repair; +} + +interaction oa_repair_report "Report repair result" id "b436d0b3-c824-5a96-af6b-2c269816d1cc" { + items [@oa_repair_operation]; + source @oa_repair; + target @oa_confirm; +} + diff --git a/harness/experiments/compact-help-20261001/package/saved-source/qa-saved.arcadia b/harness/experiments/compact-help-20261001/package/saved-source/qa-saved.arcadia new file mode 100644 index 00000000..702dd7a3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/saved-source/qa-saved.arcadia @@ -0,0 +1,33 @@ +arcadia 7; +project pressure_restoration "Restore safe water pressure — release 1 walkthrough" id "2786d72f-5763-5f33-a57f-2773a4ca1a6c" { + description "A controller either resets a valve remotely or requests field repair. Compare the operational need with the explicitly chosen coordination-service boundary. Start with README.md beside project.arcadia. Units and guards are descriptive; this model does not simulate a real water network."; + include "oa/activities/activity_oa_restore_work.arcadia"; + include "oa/behavior/process_oa_assessment_procedure.arcadia"; + include "oa/behavior/process_oa_field_procedure.arcadia"; + include "oa/behavior/process_oa_response.arcadia"; + include "oa/behavior/scenario_oa_conversation.arcadia"; + include "oa/behavior/scenario_oa_full_scenario.arcadia"; + include "oa/behavior/state_machine_oa_monitor.arcadia"; + include "oa/capabilities.arcadia"; + include "oa/model.arcadia"; + include "oa/participants.arcadia"; + include "oa/types.arcadia"; + include "sa/behavior/process_sa_assessment_procedure.arcadia"; + include "sa/behavior/process_sa_field_procedure.arcadia"; + include "sa/behavior/process_sa_response.arcadia"; + include "sa/behavior/scenario_sa_conversation.arcadia"; + include "sa/behavior/scenario_sa_full_scenario.arcadia"; + include "sa/behavior/state_machine_sa_monitor.arcadia"; + include "sa/capabilities.arcadia"; + include "sa/functions/function_sa_audit_thresholds.arcadia"; + include "sa/functions/function_sa_restore_work.arcadia"; + include "sa/model.arcadia"; + include "sa/participants.arcadia"; + include "sa/types.arcadia"; + include "traceability.arcadia"; + include "views/diagram_oa_allocation_view.arcadia"; + include "views/diagram_sa_allocation_view.arcadia"; + include "views/diagram_sa_capability_view.arcadia"; + include "views/diagram_sa_service_view.arcadia"; + include "views/diagram_sa_state_view.arcadia"; +} diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/01.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/01.request.http new file mode 100644 index 00000000..86fed38b --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/01.request.http @@ -0,0 +1,4 @@ +GET /health/ready HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/01.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/01.response.http new file mode 100644 index 00000000..00f9a262 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/01.response.http @@ -0,0 +1,9 @@ +HTTP/1.1 200 OK +content-type: application/json +x-request-id: ee19d487-59fb-4bae-a05d-c260fb928aea +cache-control: no-cache +content-length: 15 +connection: close +date: Fri, 02 Oct 2026 00:56:34 GMT + +{"status":"ok"} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/02.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/02.request.http new file mode 100644 index 00000000..14b17712 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/02.request.http @@ -0,0 +1,4 @@ +GET /api/v1/openapi.json HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/02.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/02.response.http new file mode 100644 index 00000000..16cff9c7 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/02.response.http @@ -0,0 +1,12889 @@ +HTTP/1.1 200 OK +content-type: application/json +x-request-id: 1fa5a39d-df98-4615-86ae-031dcabe597c +cache-control: no-cache +content-length: 348802 +connection: close +date: Fri, 02 Oct 2026 00:56:34 GMT + +{ + "openapi": "3.1.0", + "info": { + "title": "Arcadia Studio model API", + "version": "1.0.0", + "description": "Current schema-7 snapshots and conditional atomic writes. Request body limit: 8 MiB; at most 200 nested commands; no retained revisions, request receipts, automatic retries or persistent transition plans. See docs/api.rst. Fixed store capacity: 128 models / 256 MiB serialized envelopes. Stateless transition preview/apply. Artifact URI/revision strings remain opaque core fields. Model admission before structural validation: 5,000 graph objects, 20,000 total records and 50,000 ordered references. Preparation uses snapshots outside the catalog lock; final commits recheck the exact ETag. Each accepted envelope couples model and authored source under one revision. Source-only edits advance the shared ETag. Source bundles resolve logical paths only, preserve authored files/comments, and have a stabilized JSON cap of 8 MiB, 256 files, 32 include edges along a path and 1,024 include edges overall." + }, + "servers": [ + { + "url": "http://127.0.0.1:8787" + } + ], + "security": [ + { + "bearerAuth": [] + } + ], + "paths": { + "/health": { + "get": { + "operationId": "_health", + "summary": "Store was opened and HTTP service is responding", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "const": "ok" + } + }, + "required": [ + "status" + ], + "additionalProperties": false + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/health/live": { + "get": { + "operationId": "_health_live", + "summary": "Store was opened and HTTP service is responding", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "const": "ok" + } + }, + "required": [ + "status" + ], + "additionalProperties": false + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/health/ready": { + "get": { + "operationId": "_health_ready", + "summary": "Store was opened and HTTP service is responding", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "const": "ok" + } + }, + "required": [ + "status" + ], + "additionalProperties": false + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/openapi.json": { + "get": { + "operationId": "_openapi_json", + "summary": "OpenAPI contract", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/api/v1/openapi.json": { + "get": { + "operationId": "_api_v1_openapi_json", + "summary": "OpenAPI contract", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/api/v1/projects": { + "get": { + "operationId": "listProjects", + "summary": "List current hosted projects in UUID order", + "parameters": [ + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "q", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectPage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + }, + "post": { + "operationId": "createProject", + "summary": "Create and persist an empty model", + "parameters": [], + "responses": { + "201": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectSummary" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NameRequest" + } + } + } + } + } + }, + "/api/v1/projects/import": { + "post": { + "operationId": "importProject", + "summary": "Import JSON or UTF-8 Arcadia source as a new hosted resource", + "parameters": [], + "responses": { + "201": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectSummary" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + }, + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "description": "Schema-7 native JSON is described below. Schema-1/2/3/4/5/6 JSON and source are accepted through explicit frozen readers and migration, also on replacement and candidate validation. Earlier versions reject later constructors, fields and semantic facets, including explicit null. Prior prose and typed reviews remain intact; absent semantic review stays Unreviewed. Export emits schema 7 / arcadia 7. See docs/language.rst." + } + }, + "/api/v1/projects/{id}": { + "get": { + "operationId": "getProject", + "summary": "Get complete current envelope", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Return 304 when the current representation's revision matches.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StoredProject" + } + } + } + }, + "304": { + "description": "Unchanged; empty body." + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + }, + "patch": { + "operationId": "renameProject", + "summary": "Rename the project atomically", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NameRequest" + } + } + } + } + }, + "delete": { + "operationId": "deleteProject", + "summary": "Permanently delete the current hosted envelope", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/model": { + "get": { + "operationId": "getModel", + "summary": "Export native model JSON", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Return 304 when the current representation's revision matches.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "304": { + "description": "Unchanged; empty body." + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + }, + "put": { + "operationId": "replaceModel", + "summary": "Conditionally replace model JSON", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "description": "Replace semantics while preserving the accepted authored source layout and comments, using common UUIDs as identity correspondence. Model and source commit together. Use source-project PUT to replace authored files." + } + }, + "/api/v1/projects/{id}/source": { + "get": { + "operationId": "getSource", + "summary": "Export canonical Arcadia source", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Return 304 when the current representation's revision matches.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "304": { + "description": "Unchanged; empty body." + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "description": "Canonical single-file interchange view of the current model. Use source-project GET to export exact authored files and comments." + }, + "put": { + "operationId": "replaceSource", + "summary": "Conditionally replace from UTF-8 Arcadia source", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "description": "Replace semantics from canonical single-file interchange while preserving the existing authored source bundle using common UUIDs. Submitted formatting/comments do not replace the authored workspace. Use source-project PUT for that purpose." + } + }, + "/api/v1/projects/{id}/elements": { + "get": { + "operationId": "listElements", + "summary": "Filter current elements; AND semantics", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "revision", + "in": "query", + "required": false, + "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", + "schema": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + { + "name": "kind", + "in": "query", + "required": false, + "description": "", + "schema": { + "$ref": "#/components/schemas/Kind" + } + }, + { + "name": "layer", + "in": "query", + "required": false, + "description": "", + "schema": { + "$ref": "#/components/schemas/Layer" + } + }, + { + "name": "alias", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "q", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ElementPage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/relations": { + "get": { + "operationId": "listRelations", + "summary": "Filter relations by typed kind and endpoints", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "revision", + "in": "query", + "required": false, + "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", + "schema": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + { + "name": "kind", + "in": "query", + "required": false, + "description": "", + "schema": { + "$ref": "#/components/schemas/RelationKind" + } + }, + { + "name": "source", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "target", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "incident_to", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelationPage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/artifact-links": { + "get": { + "operationId": "listArtifacts", + "summary": "List model artifact links without fetching URIs", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "revision", + "in": "query", + "required": false, + "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", + "schema": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + { + "name": "object", + "in": "query", + "required": false, + "description": "Owner ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/traces": { + "get": { + "operationId": "listTraces", + "summary": "List OA/SA traces", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "revision", + "in": "query", + "required": false, + "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", + "schema": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + { + "name": "object", + "in": "query", + "required": false, + "description": "OA or SA endpoint ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TracePage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/query": { + "post": { + "operationId": "queryNeighborhood", + "summary": "Bounded graph neighborhood including relation endpoint closure", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NeighborhoodResult" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NeighborhoodRequest" + } + } + } + } + } + }, + "/api/v1/projects/{id}/validation": { + "get": { + "operationId": "validateCurrent", + "summary": "Shared core validation of current snapshot", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationResult" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + }, + "post": { + "operationId": "validateCandidate", + "summary": "Check submitted model/source without mutation", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationResult" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationRequest" + } + } + } + }, + "description": "Validate native model JSON, canonical Arcadia source, or a complete source-project bundle without adoption. Source-project diagnostics refer to submitted file paths and positions. Stabilized source/model byte limits are also checked." + } + }, + "/api/v1/projects/{id}/transactions": { + "post": { + "operationId": "executeTransaction", + "summary": "Atomic shared typed commands; optional dry run", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionRequest" + } + } + } + }, + "description": "Command identity correspondence drives source writeback, including UUID swaps and delete/recreate operations even when final models compare equal. Dry runs return both proposed representations and validate writeback. Failure preserves the accepted pair." + } + }, + "/api/v1/projects/{id}/transitions/preview": { + "post": { + "operationId": "previewTransition", + "summary": "Preview a shared core transition without persisting a plan", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransitionEnvelope" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransitionRequest" + } + } + } + }, + "description": "Conflict-free previews also validate authored-source writeback and stabilized model/source capacities." + } + }, + "/api/v1/projects/{id}/transitions/apply": { + "post": { + "operationId": "applyTransition", + "summary": "Apply client-held transition plan against its original revision", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransitionEnvelope" + } + } + } + } + } + }, + "/api/v1/projects/import-source-project": { + "post": { + "operationId": "importSourceProject", + "summary": "Import an authored source bundle as a new hosted resource", + "parameters": [], + "responses": { + "201": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + }, + "Location": { + "schema": { + "type": "string" + }, + "description": "Path to the created hosted resource." + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectSummary" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SourceBundle" + } + } + } + }, + "description": "Compile all logical source files, stabilize missing IDs, and persist the accepted model and bundle together. Importing source3 bundles never reads the service filesystem. Export the accepted bundle after import to retain inserted IDs." + } + }, + "/api/v1/projects/{id}/source-project": { + "get": { + "operationId": "getSourceProject", + "summary": "Export the exact accepted authored source bundle", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Return 304 when the current representation's revision matches.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SourceBundle" + } + } + } + }, + "304": { + "description": "Unchanged; empty body." + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "description": "Returns entry and all files with stable IDs, original comments, line endings and module layout. Shares the model ETag; comment-only changes advance that revision." + }, + "put": { + "operationId": "replaceSourceProject", + "summary": "Conditionally replace the complete authored source bundle", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SourceProjectMutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SourceBundle" + } + } + } + }, + "description": "Compile and validate the full submitted bundle; return accepted text with missing UUIDs inserted. Model and source persist together under the exact If-Match precondition. Comment-only or file-layout edits advance revision; an exact pair no-op retains it. Rejected candidates preserve both representations." + } + }, + "/api/v1/projects/{id}/semantic-transitions/query": { + "post": { + "operationId": "querySemanticTransition", + "summary": "Query typed trace drift and linked impacts without mutation", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticQueryResult" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + }, + "409": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticQueryRequest" + } + } + } + }, + "description": "Read one immutable snapshot. Optional revision mismatch returns409; missing trace returns404; duplicate/empty trace selection returns400. References are canonical OA-to-SA correspondence. No write, baseline refresh or external artifact fetch." + } + }, + "/api/v1/projects/{id}/semantic-transitions/preview": { + "post": { + "operationId": "previewSemanticTransition", + "summary": "Preview and source-validate a typed semantic transition without writing", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticTransitionEnvelope" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticTransitionRequest" + } + } + } + }, + "description": "Uses the frozen core typed semantic contract. A supplied plan is a client-owned candidate, not a signed receipt; fingerprints check consistency, not original review authorship. Preview validates source writeback when conflict-free. Apply preserves preview-generated IDs and does not replan random identities." + } + }, + "/api/v1/projects/{id}/semantic-transitions/apply": { + "post": { + "operationId": "applySemanticTransition", + "summary": "Conditionally apply a prepared semantic candidate in one model/source revision", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticTransitionEnvelope" + } + } + } + }, + "description": "Uses the frozen core typed semantic contract. A supplied plan is a client-owned candidate, not a signed receipt; fingerprints check consistency, not original review authorship. Preview validates source writeback when conflict-free. Apply preserves preview-generated IDs and does not replan random identities." + } + } + }, + "components": { + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer", + "description": "Optional for unconfigured loopback; required on non-loopback." + } + }, + "responses": { + "Problem": { + "description": "Structured problem response. See code/detail and docs/api.rst status mapping.", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "schemas": { + "Id": { + "type": "string", + "format": "uuid" + }, + "Revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "Layer": { + "type": "string", + "enum": [ + "Oa", + "Sa" + ] + }, + "Kind": { + "type": "string", + "enum": [ + "Entity", + "Actor", + "Role", + "Activity", + "Capability", + "OperationalMission", + "Process", + "System", + "SystemActor", + "Function", + "SystemCapability", + "Mission", + "FunctionalChain", + "ExchangeItem", + "ExchangeCategory", + "DataType", + "DataField", + "Interface", + "Port", + "Scenario", + "Lifeline", + "Occurrence", + "StateMachine", + "Region", + "State", + "Mode", + "Initial", + "Final", + "Choice", + "Junction", + "Fork", + "Join", + "ShallowHistory", + "DeepHistory", + "EntryPoint", + "ExitPoint", + "Terminate", + "Event", + "Constraint" + ] + }, + "RelationKind": { + "type": "string", + "enum": [ + "InterfaceItemAllocation", + "DataAssociation", + "Allocation", + "PortAllocation", + "Interaction", + "CapabilityInvolvement", + "ChainInvolvement", + "RoleRealization", + "RoleAssignment", + "FunctionalExchange", + "BoundaryExchange", + "CommunicationMean", + "MissionCapability", + "CapabilityInclude", + "CapabilityExtend", + "CapabilityGeneralization", + "MissionInvolvement", + "SequenceLink", + "ContextualLink", + "StateTransition", + "Availability", + "ExchangeAllocation", + "InterfaceProvision", + "InterfaceRequirement", + "StateAction" + ] + }, + "Position": { + "type": "object", + "properties": { + "x": { + "type": "number", + "minimum": -1000000, + "maximum": 1000000 + }, + "y": { + "type": "number", + "minimum": -1000000, + "maximum": 1000000 + } + }, + "required": [ + "x", + "y" + ], + "additionalProperties": false + }, + "EdgeLabel": { + "type": "object", + "description": "Authored label placement relative to the computed polyline. Both fields are required.", + "properties": { + "fraction": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "Fraction of source-to-target polyline arc length." + }, + "offset": { + "$ref": "#/components/schemas/Position", + "description": "Relative diagram-space displacement." + } + }, + "required": [ + "fraction", + "offset" + ], + "additionalProperties": false + }, + "EdgeAttachment": { + "type": "object", + "description": "Per-view preference on one stored connection end, not a semantic endpoint. Offset is finite and measured along the complete projected bounding-box side. Real semantic ports take precedence; hidden/promoted geometry retains the preference. Reconnect preserves the preference on its source/target slot.", + "properties": { + "side": { + "$ref": "#/components/schemas/PortAnchorSide" + }, + "offset": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "Left/Right: top-to-bottom fraction. Top/Bottom: left-to-right fraction. Shape-aware geometry derives the actual contour point." + } + }, + "required": [ + "side", + "offset" + ], + "additionalProperties": false + }, + "EdgeRoute": { + "type": "object", + "description": "One diagram's authored presentation for an existing Relation or Trace, including currently hidden edges. No separate identity. Stores optional endpoint preferences, pinned points and label placement; explicit empty routes are retained. Removing the route resets all authored presentation.", + "properties": { + "edge": { + "type": "string", + "format": "uuid", + "description": "Existing Relation or Trace identity, never a node placement." + }, + "source_attachment": { + "oneOf": [ + { + "$ref": "#/components/schemas/EdgeAttachment" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Absent or null means automatic. Omitted when serializing automatic presentation. Resetting this field preserves the other end, pins and label." + }, + "target_attachment": { + "oneOf": [ + { + "$ref": "#/components/schemas/EdgeAttachment" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Absent or null means automatic. Omitted when serializing automatic presentation. Resetting this field preserves the other end, pins and label." + }, + "waypoints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Position" + }, + "maxItems": 128, + "default": [], + "description": "Absolute diagram positions in traversal order." + }, + "label": { + "oneOf": [ + { + "$ref": "#/components/schemas/EdgeLabel" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "edge" + ], + "additionalProperties": false + }, + "Size": { + "type": "object", + "properties": { + "width": { + "type": "number", + "exclusiveMinimum": 0 + }, + "height": { + "type": "number", + "exclusiveMinimum": 0 + } + }, + "required": [ + "width", + "height" + ], + "additionalProperties": false + }, + "DataTypeDefinition": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Boolean" + ] + }, + { + "type": "object", + "properties": { + "Integer": { + "type": "object", + "properties": { + "minimum": { + "anyOf": [ + { + "type": "integer", + "format": "int64", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + { + "type": "null" + } + ] + }, + "maximum": { + "anyOf": [ + { + "type": "integer", + "format": "int64", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "minimum", + "maximum" + ], + "additionalProperties": false + } + }, + "required": [ + "Integer" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Real": { + "type": "object", + "properties": { + "minimum": { + "anyOf": [ + { + "type": "number", + "format": "double", + "description": "Finite IEEE-754 binary64; no coercion from typed Integer values." + }, + { + "type": "null" + } + ] + }, + "maximum": { + "anyOf": [ + { + "type": "number", + "format": "double", + "description": "Finite IEEE-754 binary64; no coercion from typed Integer values." + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "minimum", + "maximum" + ], + "additionalProperties": false + } + }, + "required": [ + "Real" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "String": { + "type": "object", + "properties": { + "minimum_length": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "maximum_length": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "minimum_length", + "maximum_length" + ], + "additionalProperties": false + } + }, + "required": [ + "String" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Enumeration": { + "type": "object", + "properties": { + "literals": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "literals" + ], + "additionalProperties": false + } + }, + "required": [ + "Enumeration" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Record": { + "type": "object", + "properties": { + "supertype": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "supertype" + ], + "additionalProperties": false + } + }, + "required": [ + "Record" + ], + "additionalProperties": false + } + ] + }, + "TypeRef": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Boolean", + "Integer", + "Real", + "String" + ] + }, + { + "oneOf": [ + { + "type": "object", + "properties": { + "Named": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "Named" + ], + "additionalProperties": false + } + ] + } + ] + }, + "OccurrenceBody": { + "oneOf": [ + { + "type": "object", + "properties": { + "Exchange": { + "type": "object", + "properties": { + "exchange": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "sender": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "receiver": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "message_kind": { + "$ref": "#/components/schemas/MessageKind", + "default": "Asynchronous" + }, + "reply_to": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ], + "default": null + }, + "values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageValue" + }, + "default": [] + }, + "operation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OperationUse" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "exchange", + "sender", + "receiver" + ], + "additionalProperties": false, + "description": "Absent/null operation retains ordinary channel semantics and is omitted on output. Present operation is allowed only on SA BoundaryInterface Call/Asynchronous messages. Reply stores no operation and derives its exact Call's selection. Existing message defaults remain unchanged." + } + }, + "required": [ + "Exchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Action": { + "type": "object", + "properties": { + "action": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "lifeline": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "action", + "lifeline" + ], + "additionalProperties": false + } + }, + "required": [ + "Action" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "type": "object", + "properties": { + "state": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "lifeline": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "state", + "lifeline" + ], + "additionalProperties": false + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Fragment": { + "type": "object", + "properties": { + "operator": { + "type": "string", + "enum": [ + "Alternative", + "Parallel", + "Loop", + "Optional" + ] + }, + "branches": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "operator", + "branches" + ], + "additionalProperties": false + } + }, + "required": [ + "Fragment" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Branch": { + "type": "object", + "properties": { + "guard": { + "type": "string" + }, + "occurrences": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "guard", + "occurrences" + ], + "additionalProperties": false + } + }, + "required": [ + "Branch" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Control": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/ControlKind" + } + }, + "required": [ + "kind" + ], + "additionalProperties": false + } + }, + "required": [ + "Control" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SequenceReference": { + "type": "object", + "properties": { + "sequence": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "sequence" + ], + "additionalProperties": false + } + }, + "required": [ + "SequenceReference" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ScenarioUse": { + "type": "object", + "properties": { + "scenario": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "bindings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LifelineBinding" + } + } + }, + "required": [ + "scenario", + "bindings" + ], + "additionalProperties": false + } + }, + "required": [ + "ScenarioUse" + ], + "additionalProperties": false + } + ] + }, + "SharedBody": { + "oneOf": [ + { + "type": "string", + "enum": [ + "StateMachine", + "Region" + ] + }, + { + "oneOf": [ + { + "type": "object", + "properties": { + "ExchangeItem": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/ExchangeItemKind" + }, + "mechanism": { + "$ref": "#/components/schemas/ExchangeMechanism" + }, + "supertype": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "kind", + "mechanism", + "supertype" + ], + "additionalProperties": false + } + }, + "required": [ + "ExchangeItem" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DataType": { + "type": "object", + "properties": { + "definition": { + "$ref": "#/components/schemas/DataTypeDefinition" + }, + "default": { + "anyOf": [ + { + "$ref": "#/components/schemas/DataValue" + }, + { + "type": "null" + } + ] + }, + "unit": { + "type": "string" + } + }, + "required": [ + "definition", + "default", + "unit" + ], + "additionalProperties": false + } + }, + "required": [ + "DataType" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DataField": { + "type": "object", + "properties": { + "type_ref": { + "$ref": "#/components/schemas/TypeRef" + }, + "minimum": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "maximum": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + }, + "unit": { + "type": "string" + }, + "direction": { + "$ref": "#/components/schemas/ParameterDirection" + }, + "storage": { + "$ref": "#/components/schemas/FieldStorage" + }, + "default": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataValue" + } + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "type_ref", + "minimum", + "maximum", + "unit", + "direction", + "storage", + "default" + ], + "additionalProperties": false + } + }, + "required": [ + "DataField" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Interface": { + "type": "object", + "properties": { + "supertype": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "supertype" + ], + "additionalProperties": false + } + }, + "required": [ + "Interface" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Port": { + "type": "object", + "properties": { + "contract": { + "$ref": "#/components/schemas/PortContract" + }, + "legacy": { + "anyOf": [ + { + "$ref": "#/components/schemas/LegacyPortContract" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "contract", + "legacy" + ], + "additionalProperties": false + } + }, + "required": [ + "Port" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Scenario": { + "type": "object", + "properties": { + "context": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "precondition": { + "type": "string" + }, + "postcondition": { + "type": "string" + }, + "steps": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "viewpoint": { + "$ref": "#/components/schemas/ScenarioViewpoint", + "default": "MixedLegacy", + "description": "Omitted schema-2 viewpoint retains legacy mixed lifelines. New graphical factories select OperationalActivity or Functional explicitly." + } + }, + "required": [ + "context", + "precondition", + "postcondition", + "steps" + ], + "additionalProperties": false + } + }, + "required": [ + "Scenario" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Lifeline": { + "type": "object", + "properties": { + "represented": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "represented" + ], + "additionalProperties": false + } + }, + "required": [ + "Lifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Occurrence": { + "type": "object", + "properties": { + "body": { + "$ref": "#/components/schemas/OccurrenceBody" + }, + "precondition": { + "type": "string" + }, + "postcondition": { + "type": "string" + } + }, + "required": [ + "body", + "precondition", + "postcondition" + ], + "additionalProperties": false + } + }, + "required": [ + "Occurrence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/StateKind" + }, + "entry": { + "type": "string" + }, + "exit": { + "type": "string" + }, + "do_activity": { + "type": "string" + } + }, + "required": [ + "kind", + "entry", + "exit", + "do_activity" + ], + "additionalProperties": false + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Constraint": { + "type": "object", + "properties": { + "expression": { + "type": "string" + }, + "constrained": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "expression", + "constrained" + ], + "additionalProperties": false + } + }, + "required": [ + "Constraint" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Event": { + "type": "object", + "properties": { + "body": { + "$ref": "#/components/schemas/EventBody" + } + }, + "required": [ + "body" + ], + "additionalProperties": false + } + }, + "required": [ + "Event" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExchangeCategory": { + "type": "object", + "properties": { + "family": { + "$ref": "#/components/schemas/ExchangeFamily" + }, + "exchanges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "family", + "exchanges" + ], + "additionalProperties": false + } + }, + "required": [ + "ExchangeCategory" + ], + "additionalProperties": false + } + ] + } + ] + }, + "OaBody": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Entity", + "Actor", + "Role", + "Activity", + "Capability", + "Mission" + ] + }, + { + "oneOf": [ + { + "type": "object", + "properties": { + "Process": { + "type": "object", + "properties": { + "steps": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "steps" + ], + "additionalProperties": false + } + }, + "required": [ + "Process" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Shared": { + "$ref": "#/components/schemas/SharedBody" + } + }, + "required": [ + "Shared" + ], + "additionalProperties": false + } + ] + } + ] + }, + "SaBody": { + "oneOf": [ + { + "type": "string", + "enum": [ + "System", + "Actor", + "Function", + "Capability", + "Mission" + ] + }, + { + "oneOf": [ + { + "type": "object", + "properties": { + "FunctionalChain": { + "type": "object", + "properties": { + "steps": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "steps" + ], + "additionalProperties": false + } + }, + "required": [ + "FunctionalChain" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Shared": { + "$ref": "#/components/schemas/SharedBody" + } + }, + "required": [ + "Shared" + ], + "additionalProperties": false + } + ] + } + ] + }, + "ElementBody": { + "oneOf": [ + { + "type": "object", + "properties": { + "Oa": { + "$ref": "#/components/schemas/OaBody" + } + }, + "required": [ + "Oa" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Sa": { + "$ref": "#/components/schemas/SaBody" + } + }, + "required": [ + "Sa" + ], + "additionalProperties": false + } + ] + }, + "Element": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "parent": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "body": { + "$ref": "#/components/schemas/ElementBody" + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "parent", + "body" + ], + "additionalProperties": false + }, + "RelationBody": { + "oneOf": [ + { + "type": "object", + "properties": { + "Allocation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "Allocation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CapabilityInvolvement": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "CapabilityInvolvement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ChainInvolvement": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "ChainInvolvement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RoleRealization": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "RoleRealization" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RoleAssignment": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "RoleAssignment" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MissionCapability": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "MissionCapability" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Availability": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "Availability" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExchangeAllocation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "ExchangeAllocation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "InterfaceProvision": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "InterfaceProvision" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "InterfaceRequirement": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "InterfaceRequirement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Interaction": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "source", + "target", + "items" + ], + "additionalProperties": false + } + }, + "required": [ + "Interaction" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "BoundaryExchange": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "oriented": { + "type": "boolean", + "description": "Independent of component port kind/orientation. Old V2 exchanges migrate to true." + } + }, + "required": [ + "source", + "target", + "items", + "oriented" + ], + "additionalProperties": false + } + }, + "required": [ + "BoundaryExchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "FunctionalExchange": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "source_port": { + "type": "string", + "format": "uuid" + }, + "target_port": { + "type": "string", + "format": "uuid" + }, + "items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "source", + "target", + "source_port", + "target_port", + "items" + ], + "additionalProperties": false + } + }, + "required": [ + "FunctionalExchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StateTransition": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "trigger": { + "type": "string" + }, + "guard": { + "type": "string" + }, + "effect": { + "type": "string" + }, + "transition_kind": { + "$ref": "#/components/schemas/TransitionKind", + "default": "External", + "description": "Omitted legacy schema-2 value is External." + }, + "triggers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "uniqueItems": true, + "description": "Same-layer Event or Activity/Function references; alternatives, not implicit conjunction.", + "default": [] + }, + "effects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "uniqueItems": true, + "description": "Same-layer Activity/Function references describing transition effects.", + "default": [] + } + }, + "required": [ + "source", + "target", + "trigger", + "guard", + "effect" + ], + "additionalProperties": false, + "description": "Existing trigger, guard and effect prose is preserved exactly. New typed properties are optional only for staged schema-2 compatibility. Removing the last typed trigger retains a descriptive unresolved-trigger placeholder instead of silently introducing completion semantics." + } + }, + "required": [ + "StateTransition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StateAction": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "phase": { + "type": "string", + "enum": [ + "Entry", + "Do", + "Exit" + ] + } + }, + "required": [ + "source", + "target", + "phase" + ], + "additionalProperties": false + } + }, + "required": [ + "StateAction" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CapabilityInclude": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "CapabilityInclude" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CapabilityExtend": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "condition": { + "type": "string", + "description": "Engineering condition under which the extending capability adds behavior." + } + }, + "required": [ + "source", + "target", + "condition" + ], + "additionalProperties": false + } + }, + "required": [ + "CapabilityExtend" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CapabilityGeneralization": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "CapabilityGeneralization" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MissionInvolvement": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "MissionInvolvement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SequenceLink": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "guard": { + "type": "string", + "description": "Condition for a contextual process/chain path. Choice and loop paths should use explicit conditions or else." + } + }, + "required": [ + "source", + "target", + "guard" + ], + "additionalProperties": false + } + }, + "required": [ + "SequenceLink" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "PortAllocation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "PortAllocation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "InterfaceItemAllocation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "order": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "transmission": { + "$ref": "#/components/schemas/TransmissionProtocol" + }, + "acquisition": { + "$ref": "#/components/schemas/AcquisitionProtocol" + } + }, + "required": [ + "source", + "target", + "order", + "transmission", + "acquisition" + ], + "additionalProperties": false + } + }, + "required": [ + "InterfaceItemAllocation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DataAssociation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "source_role": { + "type": "string" + }, + "target_role": { + "type": "string" + }, + "source_minimum": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "source_maximum": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + }, + "target_minimum": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "target_maximum": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + }, + "source_navigable": { + "type": "boolean" + }, + "target_navigable": { + "type": "boolean" + } + }, + "required": [ + "source", + "target", + "source_role", + "target_role", + "source_minimum", + "source_maximum", + "target_minimum", + "target_maximum", + "source_navigable", + "target_navigable" + ], + "additionalProperties": false + } + }, + "required": [ + "DataAssociation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CommunicationMean": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "target": { + "$ref": "#/components/schemas/Id" + }, + "oriented": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "source", + "target", + "oriented", + "items" + ], + "additionalProperties": false + } + }, + "required": [ + "CommunicationMean" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextualLink": { + "type": "object", + "properties": { + "owner": { + "$ref": "#/components/schemas/Id" + }, + "source": { + "$ref": "#/components/schemas/OccurrenceEndpoint" + }, + "target": { + "$ref": "#/components/schemas/OccurrenceEndpoint" + }, + "purpose": { + "$ref": "#/components/schemas/ContextualLinkPurpose" + } + }, + "required": [ + "owner", + "source", + "target", + "purpose" + ], + "additionalProperties": false + } + }, + "required": [ + "ContextualLink" + ], + "additionalProperties": false + } + ] + }, + "Relation": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "body": { + "$ref": "#/components/schemas/RelationBody" + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "body" + ], + "additionalProperties": false + }, + "PortAnchorSide": { + "type": "string", + "enum": [ + "Left", + "Right", + "Top", + "Bottom" + ], + "description": "Presentation side of the owner placement; independent of semantic port direction." + }, + "PortAnchor": { + "type": "object", + "description": "Manual position of a direct child Port on one owner placement. Each port occurs at most once per placement; this record has no separate identity.", + "properties": { + "port": { + "type": "string", + "format": "uuid" + }, + "side": { + "$ref": "#/components/schemas/PortAnchorSide" + }, + "offset": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "Finite binary32 fraction of the complete owner edge, measured from top on Left/Right and from left on Top/Bottom." + } + }, + "required": [ + "port", + "side", + "offset" + ], + "additionalProperties": false + }, + "NodePlacement": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "element": { + "type": "string", + "format": "uuid" + }, + "position": { + "$ref": "#/components/schemas/Position" + }, + "size": { + "$ref": "#/components/schemas/Size" + }, + "collapsed": { + "type": "boolean" + }, + "port_anchors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PortAnchor" + }, + "default": [], + "description": "Per-placement manual port positions. Omitted and empty both select automatic positioning; empty lists are omitted on serialization. Duplicate port references are invalid." + } + }, + "required": [ + "id", + "alias", + "element", + "position", + "size", + "collapsed" + ], + "additionalProperties": false + }, + "ProjectionKind": { + "description": "Existing projections remain strings. StateMachine carries one required UUID reference to an existing StateMachine in the diagram layer (state_diagram_context). Its placements may contain only that machine and its regions/state vertices, including nested members (state_diagram_member). Empty and partial views are valid. Incompatible placements must be removed or relocated in the same transaction when changing context; accepting or reading a view does not synthesize semantic records or placements.", + "oneOf": [ + { + "type": "string", + "enum": [ + "FunctionalDataflow", + "Capabilities", + "Overview", + "Decomposition", + "Allocation", + "Traceability" + ] + }, + { + "type": "object", + "properties": { + "StateMachine": { + "type": "object", + "properties": { + "machine": { + "type": "string", + "format": "uuid", + "description": "Required identity of the same-layer StateMachine that owns this view's members." + } + }, + "required": [ + "machine" + ], + "additionalProperties": false + } + }, + "required": [ + "StateMachine" + ], + "additionalProperties": false + } + ], + "examples": [ + "Overview", + { + "StateMachine": { + "machine": "11111111-1111-4111-8111-111111111111" + } + } + ] + }, + "Diagram": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "layer": { + "$ref": "#/components/schemas/Layer" + }, + "projection": { + "$ref": "#/components/schemas/ProjectionKind" + }, + "nodes": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/NodePlacement" + } + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeRoute" + }, + "default": [], + "description": "Unique by edge identity within this diagram. Stored order is retained. Each entry counts against the total model record admission limit. Missing routes in earlier schema-3 models default to empty." + }, + "view_options": { + "$ref": "#/components/schemas/ViewOptions", + "default": {} + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "layer", + "projection", + "nodes" + ], + "additionalProperties": false + }, + "ArtifactLink": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "owner": { + "type": "string", + "format": "uuid" + }, + "relation": { + "type": "string", + "enum": [ + "References", + "Satisfies", + "Verifies", + "Implements", + "DerivedFrom" + ] + }, + "uri": { + "type": "string", + "description": "Opaque external artifact reference. Server never fetches or executes it." + }, + "revision": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "fragment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "owner", + "relation", + "uri", + "revision", + "fragment" + ], + "additionalProperties": false + }, + "TracedProperties": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "name", + "description" + ], + "additionalProperties": false + }, + "TraceBaseline": { + "type": "object", + "properties": { + "oa": { + "$ref": "#/components/schemas/TracedProperties" + }, + "sa": { + "$ref": "#/components/schemas/TracedProperties" + }, + "semantic": { + "anyOf": [ + { + "$ref": "#/components/schemas/SemanticBaseline" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Absent/null means Unreviewed. Historical typed facts never become live graph references." + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "Trace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "oa": { + "type": "string", + "format": "uuid" + }, + "sa": { + "type": "string", + "format": "uuid" + }, + "kind": { + "type": "string", + "enum": [ + "Refinement", + "Participant", + "Capability", + "Mission", + "Exchange", + "Sequence", + "Item", + "Scenario", + "State", + "Manual" + ] + }, + "baseline": { + "anyOf": [ + { + "$ref": "#/components/schemas/TraceBaseline" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "oa", + "sa", + "kind", + "baseline" + ], + "additionalProperties": false + }, + "Project": { + "type": "object", + "properties": { + "schema_version": { + "type": "integer", + "const": 7 + }, + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "elements": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Element" + } + }, + "relations": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Relation" + } + }, + "diagrams": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Diagram" + } + }, + "artifact_links": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "traces": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Trace" + } + } + }, + "required": [ + "schema_version", + "id", + "alias", + "name", + "description", + "elements", + "relations", + "diagrams", + "artifact_links", + "traces" + ], + "additionalProperties": false + }, + "StoredProject": { + "type": "object", + "properties": { + "resource_id": { + "type": "string", + "format": "uuid" + }, + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "model": { + "$ref": "#/components/schemas/Project" + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ], + "description": "Present after legacy import/reopen; excluded from persisted envelopes. Resource identity and revision are unchanged by reopening." + }, + "source_project": { + "$ref": "#/components/schemas/SourceBundle" + } + }, + "required": [ + "resource_id", + "revision", + "model", + "source_project" + ], + "additionalProperties": false, + "description": "Accepted coupled model/source snapshot. Compiling source_project reproduces model; revision changes once if either representation changes. Older model-only or schema3 coupled envelopes migrate in memory without a write or revision change; both representations must independently migrate to the same graph." + }, + "ProjectSummary": { + "type": "object", + "properties": { + "resource_id": { + "type": "string", + "format": "uuid" + }, + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "model_id": { + "type": "string", + "format": "uuid" + }, + "schema_version": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "elements": { + "type": "integer", + "minimum": 0 + }, + "relations": { + "type": "integer", + "minimum": 0 + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "resource_id", + "revision", + "model_id", + "schema_version", + "name", + "elements", + "relations" + ], + "additionalProperties": false + }, + "Issue": { + "type": "object", + "properties": { + "severity": { + "type": "string", + "enum": [ + "error", + "warning" + ] + }, + "message": { + "type": "string" + }, + "object_id": { + "type": "string", + "format": "uuid" + }, + "line": { + "type": "integer", + "minimum": 1 + }, + "column": { + "type": "integer", + "minimum": 1, + "description": "One-based Unicode scalar column." + }, + "code": { + "type": "string" + }, + "field": { + "type": "string" + }, + "path": { + "type": "string", + "description": "Logical source file path, when a source project supplied the diagnostic." + }, + "span": { + "$ref": "#/components/schemas/SourceSpan" + }, + "related": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SourceLocation" + } + } + }, + "required": [ + "severity", + "message", + "code" + ], + "additionalProperties": false + }, + "Problem": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "title": { + "type": "string" + }, + "status": { + "type": "integer" + }, + "code": { + "type": "string" + }, + "detail": { + "type": "string" + }, + "current_revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + } + }, + "required": [ + "type", + "title", + "status", + "code", + "detail" + ], + "additionalProperties": false + }, + "NameRequest": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "Command": { + "oneOf": [ + { + "type": "object", + "properties": { + "Replace": { + "$ref": "#/components/schemas/Project" + } + }, + "required": [ + "Replace" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Batch": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Command" + } + } + }, + "required": [ + "Batch" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Add": { + "$ref": "#/components/schemas/Kind" + } + }, + "required": [ + "Add" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "AddElement": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/Kind" + }, + "layer": { + "$ref": "#/components/schemas/Layer" + }, + "name": { + "type": "string" + }, + "parent": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "kind", + "layer", + "name", + "parent" + ], + "additionalProperties": false + } + }, + "required": [ + "AddElement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Connect": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/components/schemas/RelationKind" + }, + { + "type": "string" + }, + { + "type": "string", + "format": "uuid" + }, + { + "type": "string", + "format": "uuid" + } + ], + "minItems": 4, + "maxItems": 4 + } + }, + "required": [ + "Connect" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditProject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "id", + "alias", + "name", + "description" + ], + "additionalProperties": false + } + }, + "required": [ + "EditProject" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Reparent": { + "type": "object", + "properties": { + "element": { + "type": "string", + "format": "uuid" + }, + "parent": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "element", + "parent" + ], + "additionalProperties": false + } + }, + "required": [ + "Reparent" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Reidentify": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string", + "format": "uuid" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "Reidentify" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Rename": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "Rename" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Describe": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "Describe" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SetAlias": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "SetAlias" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Delete": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "Delete" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "AddStep": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string", + "format": "uuid" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "AddStep" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RemoveStep": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "RemoveStep" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MoveStep": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "integer", + "minimum": 0 + } + ], + "minItems": 3, + "maxItems": 3 + } + }, + "required": [ + "MoveStep" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SetSteps": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "SetSteps" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Layout": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "Layout" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateNode": { + "type": "object", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "node": { + "$ref": "#/components/schemas/NodePlacement" + } + }, + "required": [ + "diagram", + "node" + ], + "additionalProperties": false + } + }, + "required": [ + "CreateNode" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditNode": { + "type": "object", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "original": { + "type": "string", + "format": "uuid" + }, + "node": { + "$ref": "#/components/schemas/NodePlacement" + } + }, + "required": [ + "diagram", + "original", + "node" + ], + "additionalProperties": false + } + }, + "required": [ + "EditNode" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RelocateNode": { + "type": "object", + "description": "Move an existing placement to another diagram while preserving its UUID, alias, geometry, collapse state and dependent artifact references. The target diagram must accept the element and must not already contain its placement.", + "properties": { + "node": { + "type": "string", + "format": "uuid" + }, + "diagram": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "node", + "diagram" + ], + "additionalProperties": false + } + }, + "required": [ + "RelocateNode" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MoveNode": { + "type": "object", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "node": { + "type": "string", + "format": "uuid" + }, + "position": { + "$ref": "#/components/schemas/Position" + }, + "with_descendants": { + "type": "boolean" + } + }, + "required": [ + "diagram", + "node", + "position", + "with_descendants" + ], + "additionalProperties": false + } + }, + "required": [ + "MoveNode" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SetEdgeRoute": { + "type": "object", + "description": "Upsert by edge identity; preserves unrelated route entries and order. Uses existing transaction validation and ETag checks.", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "route": { + "$ref": "#/components/schemas/EdgeRoute" + } + }, + "required": [ + "diagram", + "route" + ], + "additionalProperties": false + } + }, + "required": [ + "SetEdgeRoute" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RemoveEdgeRoute": { + "type": "object", + "description": "Reset to automatic routing. No-op if this existing diagram has no route for the existing edge.", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "edge": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "diagram", + "edge" + ], + "additionalProperties": false + } + }, + "required": [ + "RemoveEdgeRoute" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SetPortAnchor": { + "type": "object", + "description": "Upsert manual port position by port identity on an existing owner placement, preserving unrelated entries. Port must be a direct child of the placement's semantic element.", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "node": { + "type": "string", + "format": "uuid" + }, + "anchor": { + "$ref": "#/components/schemas/PortAnchor" + } + }, + "required": [ + "diagram", + "node", + "anchor" + ], + "additionalProperties": false + } + }, + "required": [ + "SetPortAnchor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RemovePortAnchor": { + "type": "object", + "description": "Restore automatic positioning for an existing direct child Port. No-op when that valid owner placement has no manual anchor for the port; wrong or stale ownership is rejected.", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "node": { + "type": "string", + "format": "uuid" + }, + "port": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "diagram", + "node", + "port" + ], + "additionalProperties": false + } + }, + "required": [ + "RemovePortAnchor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateElement": { + "$ref": "#/components/schemas/Element" + } + }, + "required": [ + "CreateElement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditElement": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Element" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditElement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateRelation": { + "$ref": "#/components/schemas/Relation" + } + }, + "required": [ + "CreateRelation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditRelation": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Relation" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditRelation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateDiagram": { + "$ref": "#/components/schemas/Diagram" + } + }, + "required": [ + "CreateDiagram" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditDiagram": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Diagram" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditDiagram" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateArtifact": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "required": [ + "CreateArtifact" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditArtifact": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/ArtifactLink" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditArtifact" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateTrace": { + "$ref": "#/components/schemas/Trace" + } + }, + "required": [ + "CreateTrace" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditTrace": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Trace" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditTrace" + ], + "additionalProperties": false + } + ] + }, + "TransactionRequest": { + "type": "object", + "properties": { + "commands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Command" + }, + "minItems": 1, + "maxItems": 200 + }, + "dry_run": { + "type": "boolean", + "default": false + } + }, + "required": [ + "commands" + ], + "additionalProperties": false + }, + "TransactionResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "dry_run": { + "type": "boolean" + }, + "changed": { + "type": "boolean" + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + }, + "model": { + "$ref": "#/components/schemas/Project", + "description": "Proposed model, present only for a dry run." + }, + "source_project": { + "$ref": "#/components/schemas/SourceBundle", + "description": "Proposed accepted bundle, present only for a dry run. Source writeback is validated before returning a successful candidate." + } + }, + "required": [ + "revision", + "dry_run", + "changed", + "issues" + ], + "additionalProperties": false + }, + "MutationResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "changed": { + "type": "boolean" + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "changed" + ], + "additionalProperties": false + }, + "ValidationRequest": { + "oneOf": [ + { + "type": "object", + "properties": { + "format": { + "const": "json" + }, + "model": { + "$ref": "#/components/schemas/Project" + } + }, + "required": [ + "format", + "model" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "format": { + "const": "arcadia" + }, + "source": { + "type": "string" + } + }, + "required": [ + "format", + "source" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "format": { + "const": "source-project" + }, + "source_project": { + "$ref": "#/components/schemas/SourceBundle" + } + }, + "required": [ + "format", + "source_project" + ], + "additionalProperties": false + } + ] + }, + "ValidationResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "valid": { + "type": "boolean" + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "valid", + "issues" + ], + "additionalProperties": false + }, + "NeighborhoodRequest": { + "type": "object", + "properties": { + "roots": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "minItems": 1, + "maxItems": 100 + }, + "direction": { + "type": "string", + "enum": [ + "incoming", + "outgoing", + "both" + ], + "default": "both" + }, + "relation_kinds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RelationKind" + } + }, + "max_depth": { + "type": "integer", + "minimum": 0, + "maximum": 4, + "default": 1 + }, + "max_objects": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 200 + }, + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + "required": [ + "roots" + ], + "additionalProperties": false + }, + "NeighborhoodResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Element" + } + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Relation" + } + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "revision", + "elements", + "relations", + "truncated" + ], + "additionalProperties": false + }, + "ElementPage": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Element" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "items", + "next_after" + ], + "additionalProperties": false + }, + "RelationPage": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Relation" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "items", + "next_after" + ], + "additionalProperties": false + }, + "ArtifactPage": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "items", + "next_after" + ], + "additionalProperties": false + }, + "TracePage": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Trace" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "items", + "next_after" + ], + "additionalProperties": false + }, + "ProjectPage": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectSummary" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "items", + "next_after" + ], + "additionalProperties": false + }, + "TransitionDirection": { + "type": "string", + "enum": [ + "OaToSa", + "SaToOa" + ] + }, + "TransitionField": { + "type": "string", + "enum": [ + "Name", + "Description" + ] + }, + "TransitionMapping": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "target": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "target_kind": { + "anyOf": [ + { + "$ref": "#/components/schemas/Kind" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "source", + "target", + "target_kind" + ], + "additionalProperties": false + }, + "FieldDecision": { + "oneOf": [ + { + "type": "string", + "enum": [ + "TakeSource", + "KeepTarget" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "FieldResolution": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "field": { + "$ref": "#/components/schemas/TransitionField" + }, + "decision": { + "$ref": "#/components/schemas/FieldDecision" + } + }, + "required": [ + "source", + "field", + "decision" + ], + "additionalProperties": false + }, + "TransitionRequest": { + "type": "object", + "properties": { + "direction": { + "$ref": "#/components/schemas/TransitionDirection" + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "maxItems": 100 + }, + "scope": { + "type": "string", + "enum": [ + "SelectedOnly", + "Required", + "Subtree" + ] + }, + "mappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransitionMapping" + }, + "maxItems": 200 + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransitionField" + } + }, + "resolutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FieldResolution" + }, + "maxItems": 400 + }, + "destination_diagram": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "communication_endpoints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommunicationEndpointDecision" + }, + "maxItems": 200, + "default": [], + "description": "Explicit SA component-port pair per selected OA CommunicationMean. Reuse or Create only. Owners follow reviewed participant mappings; no participant-to-port substitution or automatic interface allocation." + }, + "operation_omissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OperationOmission" + }, + "maxItems": 200, + "default": [], + "description": "Explicit SA-to-OA abstraction per selected invocation with operation intent. Nonempty rationale required by core; duplicates, irrelevant sources, and other directions are refused. Replies derive the Call abstraction. Source operation identities and values are preserved." + } + }, + "required": [ + "direction", + "sources", + "scope", + "mappings", + "fields", + "resolutions", + "destination_diagram" + ], + "additionalProperties": false + }, + "FieldChange": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/TransitionField" + }, + "before": { + "type": "string" + }, + "after": { + "type": "string" + } + }, + "required": [ + "field", + "before", + "after" + ], + "additionalProperties": false + }, + "TransitionChange": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "target": { + "$ref": "#/components/schemas/Id" + }, + "action": { + "type": "string", + "enum": [ + "Create", + "Update", + "Reuse" + ] + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FieldChange" + } + } + }, + "required": [ + "source", + "target", + "action", + "fields" + ], + "additionalProperties": false + }, + "TransitionConflict": { + "type": "object", + "properties": { + "source": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "target": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "field": { + "anyOf": [ + { + "$ref": "#/components/schemas/TransitionField" + }, + { + "type": "null" + } + ] + }, + "message": { + "type": "string" + } + }, + "required": [ + "source", + "target", + "field", + "message" + ], + "additionalProperties": false + }, + "TransitionPlan": { + "type": "object", + "properties": { + "base_fingerprint": { + "type": "string" + }, + "request": { + "$ref": "#/components/schemas/TransitionRequest" + }, + "changes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransitionChange" + } + }, + "conflicts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransitionConflict" + } + }, + "warnings": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Command" + } + } + }, + "required": [ + "base_fingerprint", + "request", + "changes", + "conflicts", + "warnings", + "commands" + ], + "additionalProperties": false + }, + "TransitionEnvelope": { + "type": "object", + "properties": { + "base_revision": { + "$ref": "#/components/schemas/Revision" + }, + "plan": { + "$ref": "#/components/schemas/TransitionPlan" + } + }, + "required": [ + "base_revision", + "plan" + ], + "additionalProperties": false + }, + "ControlKind": { + "type": "string", + "enum": [ + "Choice", + "Merge", + "Fork", + "Join", + "Loop" + ] + }, + "ScenarioViewpoint": { + "type": "string", + "enum": [ + "OperationalActivity", + "ParticipantInteraction", + "Functional", + "BoundaryInterface", + "MixedLegacy" + ] + }, + "MessageKind": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Asynchronous", + "Call", + "Reply", + "Create", + "Delete" + ] + }, + { + "type": "object", + "properties": { + "Timer": { + "type": "object", + "properties": { + "expression": { + "type": "string" + } + }, + "required": [ + "expression" + ], + "additionalProperties": false + } + }, + "required": [ + "Timer" + ], + "additionalProperties": false + } + ] + }, + "MessageValue": { + "type": "object", + "properties": { + "path": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "default": [] + }, + "field": { + "type": "string", + "format": "uuid" + }, + "expression": { + "type": "string" + } + }, + "required": [ + "field", + "expression" + ], + "additionalProperties": false, + "description": "Identity is (path, field). Path lists enclosing DataField UUIDs, excluding the terminal field. Value storage traverses named Records; Reference storage stops traversal. Operation Call accepts In/InOut and Reply accepts Out/InOut/Return. Unspecified direction and retained ambiguous legacy empty paths warn. Expressions are descriptive, never executed." + }, + "LifelineBinding": { + "type": "object", + "properties": { + "referenced": { + "type": "string", + "format": "uuid" + }, + "local": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "referenced", + "local" + ], + "additionalProperties": false + }, + "StateKind": { + "type": "string", + "enum": [ + "State", + "Mode", + "Initial", + "Final", + "Choice", + "Junction", + "Fork", + "Join", + "ShallowHistory", + "DeepHistory", + "EntryPoint", + "ExitPoint", + "Terminate" + ] + }, + "TimeEventKind": { + "type": "string", + "enum": [ + "After", + "At" + ], + "description": "After is relative to source-state activation; At describes an absolute instant. Expressions are descriptive, not executed." + }, + "TransitionKind": { + "type": "string", + "enum": [ + "External", + "Local", + "Internal" + ] + }, + "EventBody": { + "oneOf": [ + { + "type": "object", + "properties": { + "Signal": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "uniqueItems": true, + "description": "Same-layer ExchangeItem identities carried by the signal." + } + }, + "required": [ + "items" + ], + "additionalProperties": false + } + }, + "required": [ + "Signal" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Time": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/TimeEventKind" + }, + "expression": { + "type": "string" + } + }, + "required": [ + "kind", + "expression" + ], + "additionalProperties": false + } + }, + "required": [ + "Time" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Change": { + "type": "object", + "properties": { + "expression": { + "type": "string" + } + }, + "required": [ + "expression" + ], + "additionalProperties": false + } + }, + "required": [ + "Change" + ], + "additionalProperties": false + } + ] + }, + "PortContract": { + "oneOf": [ + { + "type": "object", + "properties": { + "FunctionInput": { + "type": "object", + "properties": { + "incoming_items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "incoming_items" + ], + "additionalProperties": false + } + }, + "required": [ + "FunctionInput" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "FunctionOutput": { + "type": "object", + "properties": { + "outgoing_items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "outgoing_items" + ], + "additionalProperties": false + } + }, + "required": [ + "FunctionOutput" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Component": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "enum": [ + "Standard", + "Flow" + ] + }, + "orientation": { + "type": "string", + "enum": [ + "Unset", + "In", + "Out", + "InOut" + ] + } + }, + "required": [ + "kind", + "orientation" + ], + "additionalProperties": false + } + }, + "required": [ + "Component" + ], + "additionalProperties": false + }, + { + "type": "string", + "enum": [ + "Legacy" + ] + } + ], + "description": "FunctionInput/Output are SA Function-owned item contracts. Component is SA System/SystemActor-owned; Standard requires Unset. Legacy requires a preserved legacy record and emits compatibility warnings. Mixed Standard/Flow component connections are invalid." + }, + "LegacyPortContract": { + "type": "object", + "properties": { + "direction": { + "type": "string", + "enum": [ + "In", + "Out", + "InOut" + ] + }, + "interface": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "direction", + "interface" + ], + "additionalProperties": false + }, + "MigrationReport": { + "type": "object", + "properties": { + "from_schema": { + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + "to_schema": { + "type": "integer", + "const": 7 + }, + "preserved_ports": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string" + }, + "required_resolution": { + "type": "string" + } + }, + "required": [ + "id", + "alias", + "required_resolution" + ], + "additionalProperties": false + } + }, + "generated_endpoints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "exchange": { + "type": "string", + "format": "uuid" + }, + "side": { + "type": "string", + "enum": [ + "source", + "target" + ] + }, + "port": { + "type": "string", + "format": "uuid" + }, + "owner": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string" + } + }, + "required": [ + "exchange", + "side", + "port", + "owner", + "alias" + ], + "additionalProperties": false + } + }, + "orientation_defaults": { + "type": "array", + "items": { + "type": "object", + "properties": { + "exchange": { + "type": "string", + "format": "uuid" + }, + "oriented": { + "type": "boolean", + "const": true + } + }, + "required": [ + "exchange", + "oriented" + ], + "additionalProperties": false + } + }, + "required_resolutions": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "semantic_defaults": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string", + "format": "uuid" + }, + "field": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "object", + "field", + "description" + ], + "additionalProperties": false + } + }, + "generated_interface_allocations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string" + }, + "order": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + } + }, + "required": [ + "id", + "source", + "target", + "alias", + "order" + ], + "additionalProperties": false + } + }, + "unresolved_message_values": { + "type": "array", + "items": { + "type": "object", + "properties": { + "occurrence": { + "type": "string", + "format": "uuid" + }, + "field": { + "type": "string", + "format": "uuid" + }, + "reason": { + "type": "string" + } + }, + "required": [ + "occurrence", + "field", + "reason" + ], + "additionalProperties": false + } + } + }, + "required": [ + "from_schema", + "to_schema", + "preserved_ports", + "generated_endpoints", + "orientation_defaults", + "required_resolutions" + ], + "additionalProperties": false, + "description": "Transient observations from explicit V1/V2/V3/V4/V5/V6 to V7 migration. New report lists default to empty when reading older responses. Reading an old envelope neither saves nor changes its revision. Allocation UUIDv5 uses project namespace and v2-interface-item::." + }, + "SourceBundle": { + "type": "object", + "description": "Complete source7 workspace (source3/4/5/6 migrate explicitly). The entry is a root filename. Files use canonical portable slash-separated relative .arcadia paths and all must be reachable. Includes resolve only against this map, never the service filesystem. Up to 256 files, 32 include edges along a path and 1,024 include edges overall. Serialized bundle JSON is at most 8 MiB, checked again after missing UUIDs are inserted. GET returns exact accepted stable text.", + "properties": { + "entry": { + "type": "string" + }, + "files": { + "type": "object", + "maxProperties": 256, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "entry", + "files" + ], + "additionalProperties": false + }, + "SourceSpan": { + "type": "object", + "description": "Half-open UTF-8 byte offsets [start,end) in the named source file.", + "properties": { + "start": { + "type": "integer", + "minimum": 0 + }, + "end": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "start", + "end" + ], + "additionalProperties": false + }, + "SourceLocation": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "span": { + "$ref": "#/components/schemas/SourceSpan" + } + }, + "required": [ + "path", + "span" + ], + "additionalProperties": false + }, + "SourceProjectMutationResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "changed": { + "type": "boolean" + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + }, + "source_project": { + "$ref": "#/components/schemas/SourceBundle" + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "changed", + "issues", + "source_project", + "migration" + ], + "additionalProperties": false + }, + "ExchangeItemKind": { + "type": "string", + "enum": [ + "Information", + "Material", + "Energy" + ] + }, + "ExchangeMechanism": { + "type": "string", + "enum": [ + "Unspecified", + "Flow", + "Event", + "Operation", + "SharedData" + ] + }, + "ParameterDirection": { + "type": "string", + "enum": [ + "Unspecified", + "In", + "Out", + "InOut", + "Return" + ] + }, + "FieldStorage": { + "type": "string", + "enum": [ + "Value", + "Reference" + ] + }, + "TransmissionProtocol": { + "type": "string", + "enum": [ + "Unspecified", + "Synchronous", + "Asynchronous", + "Unicast", + "Multicast", + "Broadcast" + ] + }, + "AcquisitionProtocol": { + "type": "string", + "enum": [ + "Unspecified", + "Read", + "Accept" + ] + }, + "DataValue": { + "oneOf": [ + { + "type": "object", + "properties": { + "Boolean": { + "type": "boolean" + } + }, + "required": [ + "Boolean" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Integer": { + "type": "integer", + "format": "int64", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + } + }, + "required": [ + "Integer" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Real": { + "type": "number", + "format": "double", + "description": "Finite IEEE-754 binary64; no coercion from typed Integer values." + } + }, + "required": [ + "Real" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "String": { + "type": "string" + } + }, + "required": [ + "String" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Enumeration": { + "type": "string" + } + }, + "required": [ + "Enumeration" + ], + "additionalProperties": false + } + ] + }, + "DataConstructor": { + "type": "string", + "enum": [ + "Boolean", + "Integer", + "Real", + "String", + "Enumeration", + "Record" + ] + }, + "PortConstructor": { + "type": "string", + "enum": [ + "FunctionInput", + "FunctionOutput", + "Component", + "Legacy" + ] + }, + "OccurrenceConstructor": { + "type": "string", + "enum": [ + "Exchange", + "Action", + "Control", + "SequenceReference", + "ScenarioUse", + "State", + "Fragment", + "Branch" + ] + }, + "EventConstructor": { + "type": "string", + "enum": [ + "Signal", + "Time", + "Change" + ] + }, + "MessageConstructor": { + "type": "string", + "enum": [ + "Asynchronous", + "Call", + "Reply", + "Create", + "Delete", + "Timer" + ] + }, + "ReferenceCollection": { + "type": "string", + "enum": [ + "Steps", + "FragmentBranches", + "FunctionInputItems", + "FunctionOutputItems", + "SignalItems", + "ExchangeItems", + "CategoryExchanges", + "TransitionTriggers", + "TransitionEffects", + "Constrained" + ] + }, + "OrderedCollection": { + "type": "string", + "enum": [ + "Steps", + "FragmentBranches" + ] + }, + "IncidentEnd": { + "type": "string", + "enum": [ + "Source", + "Target" + ] + }, + "ArtifactFacet": { + "type": "string", + "enum": [ + "Presence", + "Name", + "Description", + "Owner", + "Relation", + "Uri", + "Revision", + "Fragment" + ] + }, + "ComponentPortKind": { + "type": "string", + "enum": [ + "Standard", + "Flow" + ] + }, + "ComponentPortOrientation": { + "type": "string", + "enum": [ + "Unset", + "In", + "Out", + "InOut" + ] + }, + "PortDirection": { + "type": "string", + "enum": [ + "In", + "Out", + "InOut" + ] + }, + "FragmentOperator": { + "type": "string", + "enum": [ + "Alternative", + "Parallel", + "Loop", + "Optional" + ] + }, + "StateActionKind": { + "type": "string", + "enum": [ + "Entry", + "Do", + "Exit" + ] + }, + "ArtifactRelation": { + "type": "string", + "enum": [ + "References", + "Satisfies", + "Verifies", + "Implements", + "DerivedFrom" + ] + }, + "HeaderFacet": { + "type": "string", + "enum": [ + "Name", + "Description", + "Parent" + ] + }, + "ReviewedString": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionId": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "HeaderReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Name": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Description": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Description" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Parent": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Parent" + ], + "additionalProperties": false + } + ] + }, + "ExchangeItemFacet": { + "type": "string", + "enum": [ + "Nature", + "Mechanism", + "Supertype" + ] + }, + "ReviewedExchangeItemKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeItemKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeItemKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedExchangeMechanism": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeMechanism" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeMechanism" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ExchangeItemReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Nature": { + "$ref": "#/components/schemas/ReviewedExchangeItemKind" + } + }, + "required": [ + "Nature" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Mechanism": { + "$ref": "#/components/schemas/ReviewedExchangeMechanism" + } + }, + "required": [ + "Mechanism" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Supertype": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Supertype" + ], + "additionalProperties": false + } + ] + }, + "InterfaceFacet": { + "type": "string", + "enum": [ + "Supertype" + ] + }, + "InterfaceReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Supertype": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Supertype" + ], + "additionalProperties": false + } + ] + }, + "DataFacet": { + "type": "string", + "enum": [ + "Constructor", + "IntegerMinimum", + "IntegerMaximum", + "RealMinimum", + "RealMaximum", + "StringMinimumLength", + "StringMaximumLength", + "RecordSupertype", + "Default", + "Unit" + ] + }, + "ReviewedDataConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/DataConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/DataConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptioni64": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "integer", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "integer", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionf64": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "Reviewedu32": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionu32": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionDataValue": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/DataValue" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/DataValue" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "DataReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Constructor": { + "$ref": "#/components/schemas/ReviewedDataConstructor" + } + }, + "required": [ + "Constructor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "IntegerMinimum": { + "$ref": "#/components/schemas/ReviewedOptioni64" + } + }, + "required": [ + "IntegerMinimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "IntegerMaximum": { + "$ref": "#/components/schemas/ReviewedOptioni64" + } + }, + "required": [ + "IntegerMaximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RealMinimum": { + "$ref": "#/components/schemas/ReviewedOptionf64" + } + }, + "required": [ + "RealMinimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RealMaximum": { + "$ref": "#/components/schemas/ReviewedOptionf64" + } + }, + "required": [ + "RealMaximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StringMinimumLength": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "StringMinimumLength" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StringMaximumLength": { + "$ref": "#/components/schemas/ReviewedOptionu32" + } + }, + "required": [ + "StringMaximumLength" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RecordSupertype": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "RecordSupertype" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Default": { + "$ref": "#/components/schemas/ReviewedOptionDataValue" + } + }, + "required": [ + "Default" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Unit": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Unit" + ], + "additionalProperties": false + } + ] + }, + "FieldFacet": { + "type": "string", + "enum": [ + "Type", + "Minimum", + "Maximum", + "Unit", + "Direction", + "Storage", + "Default" + ] + }, + "ReviewedTypeRef": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TypeRef" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TypeRef" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedParameterDirection": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ParameterDirection" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ParameterDirection" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedFieldStorage": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/FieldStorage" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/FieldStorage" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionVecDataValue": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataValue" + } + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataValue" + } + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "FieldReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Type": { + "$ref": "#/components/schemas/ReviewedTypeRef" + } + }, + "required": [ + "Type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Minimum": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "Minimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Maximum": { + "$ref": "#/components/schemas/ReviewedOptionu32" + } + }, + "required": [ + "Maximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Unit": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Unit" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Direction": { + "$ref": "#/components/schemas/ReviewedParameterDirection" + } + }, + "required": [ + "Direction" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Storage": { + "$ref": "#/components/schemas/ReviewedFieldStorage" + } + }, + "required": [ + "Storage" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Default": { + "$ref": "#/components/schemas/ReviewedOptionVecDataValue" + } + }, + "required": [ + "Default" + ], + "additionalProperties": false + } + ] + }, + "PortFacet": { + "type": "string", + "enum": [ + "Constructor", + "ComponentKind", + "Orientation", + "LegacyDirection", + "LegacyInterface" + ] + }, + "ReviewedPortConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/PortConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/PortConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedComponentPortKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ComponentPortKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ComponentPortKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedComponentPortOrientation": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ComponentPortOrientation" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ComponentPortOrientation" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedPortDirection": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/PortDirection" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/PortDirection" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "PortReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Constructor": { + "$ref": "#/components/schemas/ReviewedPortConstructor" + } + }, + "required": [ + "Constructor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ComponentKind": { + "$ref": "#/components/schemas/ReviewedComponentPortKind" + } + }, + "required": [ + "ComponentKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Orientation": { + "$ref": "#/components/schemas/ReviewedComponentPortOrientation" + } + }, + "required": [ + "Orientation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "LegacyDirection": { + "$ref": "#/components/schemas/ReviewedPortDirection" + } + }, + "required": [ + "LegacyDirection" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "LegacyInterface": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "LegacyInterface" + ], + "additionalProperties": false + } + ] + }, + "ScenarioFacet": { + "type": "string", + "enum": [ + "Viewpoint", + "Context", + "Precondition", + "Postcondition" + ] + }, + "ReviewedScenarioViewpoint": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ScenarioViewpoint" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ScenarioViewpoint" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ScenarioReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Viewpoint": { + "$ref": "#/components/schemas/ReviewedScenarioViewpoint" + } + }, + "required": [ + "Viewpoint" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Context": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Context" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Precondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Precondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Postcondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Postcondition" + ], + "additionalProperties": false + } + ] + }, + "LifelineFacet": { + "type": "string", + "enum": [ + "Represented" + ] + }, + "LifelineReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Represented": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Represented" + ], + "additionalProperties": false + } + ] + }, + "OccurrenceFacet": { + "type": "string", + "enum": [ + "Constructor", + "Precondition", + "Postcondition", + "Exchange", + "Sender", + "Receiver", + "MessageKind", + "TimerExpression", + "ReplyTo", + "Operation", + "Action", + "ActionLifeline", + "ControlKind", + "Sequence", + "Scenario", + "State", + "StateLifeline", + "FragmentOperator", + "BranchGuard" + ] + }, + "ReviewedOccurrenceConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/OccurrenceConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/OccurrenceConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedMessageConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/MessageConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/MessageConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedControlKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ControlKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ControlKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedFragmentOperator": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/FragmentOperator" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/FragmentOperator" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "OccurrenceReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Constructor": { + "$ref": "#/components/schemas/ReviewedOccurrenceConstructor" + } + }, + "required": [ + "Constructor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Precondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Precondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Postcondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Postcondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Exchange": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Exchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Sender": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Sender" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Receiver": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Receiver" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MessageKind": { + "$ref": "#/components/schemas/ReviewedMessageConstructor" + } + }, + "required": [ + "MessageKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TimerExpression": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "TimerExpression" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ReplyTo": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "ReplyTo" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Operation": { + "$ref": "#/components/schemas/ReviewedOptionOperationUse" + } + }, + "required": [ + "Operation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Action": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Action" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ActionLifeline": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "ActionLifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ControlKind": { + "$ref": "#/components/schemas/ReviewedControlKind" + } + }, + "required": [ + "ControlKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Sequence": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Sequence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Scenario": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Scenario" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StateLifeline": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "StateLifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "FragmentOperator": { + "$ref": "#/components/schemas/ReviewedFragmentOperator" + } + }, + "required": [ + "FragmentOperator" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "BranchGuard": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "BranchGuard" + ], + "additionalProperties": false + } + ] + }, + "EventFacet": { + "type": "string", + "enum": [ + "Constructor", + "TimeKind", + "TimeExpression", + "ChangeExpression" + ] + }, + "ReviewedEventConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/EventConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/EventConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedTimeEventKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TimeEventKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TimeEventKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "EventReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Constructor": { + "$ref": "#/components/schemas/ReviewedEventConstructor" + } + }, + "required": [ + "Constructor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TimeKind": { + "$ref": "#/components/schemas/ReviewedTimeEventKind" + } + }, + "required": [ + "TimeKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TimeExpression": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "TimeExpression" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ChangeExpression": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "ChangeExpression" + ], + "additionalProperties": false + } + ] + }, + "StateFacet": { + "type": "string", + "enum": [ + "Kind", + "Entry", + "Exit", + "DoActivity" + ] + }, + "ReviewedStateKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/StateKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/StateKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "StateReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Kind": { + "$ref": "#/components/schemas/ReviewedStateKind" + } + }, + "required": [ + "Kind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Entry": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Entry" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Exit": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Exit" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DoActivity": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "DoActivity" + ], + "additionalProperties": false + } + ] + }, + "ConstraintFacet": { + "type": "string", + "enum": [ + "Expression" + ] + }, + "ConstraintReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Expression" + ], + "additionalProperties": false + } + ] + }, + "RelationFacet": { + "type": "string", + "enum": [ + "Source", + "Target", + "AllocationOrder", + "Transmission", + "Acquisition", + "SourceRole", + "TargetRole", + "SourceMinimum", + "SourceMaximum", + "TargetMinimum", + "TargetMaximum", + "SourceNavigable", + "TargetNavigable", + "SourcePort", + "TargetPort", + "Oriented", + "ExtendCondition", + "SequenceGuard", + "TransitionKind", + "Trigger", + "Guard", + "Effect", + "StateActionPhase", + "ContextOwner", + "ContextSource", + "ContextTarget", + "ContextPurpose" + ] + }, + "ReviewedId": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedTransmissionProtocol": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TransmissionProtocol" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TransmissionProtocol" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedAcquisitionProtocol": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/AcquisitionProtocol" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/AcquisitionProtocol" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "Reviewedbool": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedTransitionKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TransitionKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TransitionKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedStateActionKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/StateActionKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/StateActionKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "RelationReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Source": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "Source" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Target": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "Target" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "AllocationOrder": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "AllocationOrder" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Transmission": { + "$ref": "#/components/schemas/ReviewedTransmissionProtocol" + } + }, + "required": [ + "Transmission" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Acquisition": { + "$ref": "#/components/schemas/ReviewedAcquisitionProtocol" + } + }, + "required": [ + "Acquisition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourceRole": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "SourceRole" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetRole": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "TargetRole" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourceMinimum": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "SourceMinimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourceMaximum": { + "$ref": "#/components/schemas/ReviewedOptionu32" + } + }, + "required": [ + "SourceMaximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetMinimum": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "TargetMinimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetMaximum": { + "$ref": "#/components/schemas/ReviewedOptionu32" + } + }, + "required": [ + "TargetMaximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourceNavigable": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "SourceNavigable" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetNavigable": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "TargetNavigable" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourcePort": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "SourcePort" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetPort": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "TargetPort" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Oriented": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "Oriented" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExtendCondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "ExtendCondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SequenceGuard": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "SequenceGuard" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TransitionKind": { + "$ref": "#/components/schemas/ReviewedTransitionKind" + } + }, + "required": [ + "TransitionKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Trigger": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Trigger" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Guard": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Guard" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Effect": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Effect" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StateActionPhase": { + "$ref": "#/components/schemas/ReviewedStateActionKind" + } + }, + "required": [ + "StateActionPhase" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextOwner": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "ContextOwner" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextSource": { + "$ref": "#/components/schemas/ReviewedOccurrenceEndpoint" + } + }, + "required": [ + "ContextSource" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextTarget": { + "$ref": "#/components/schemas/ReviewedOccurrenceEndpoint" + } + }, + "required": [ + "ContextTarget" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextPurpose": { + "$ref": "#/components/schemas/ReviewedContextualLinkPurpose" + } + }, + "required": [ + "ContextPurpose" + ], + "additionalProperties": false + } + ] + }, + "AnnotationKey": { + "type": "object", + "properties": { + "path": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + }, + "field": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "path", + "field" + ], + "additionalProperties": false + }, + "KeyPairId": { + "type": "object", + "properties": { + "oa": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "sa": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + } + }, + "required": [], + "additionalProperties": false + }, + "KeyPairString": { + "type": "object", + "properties": { + "oa": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sa": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [], + "additionalProperties": false + }, + "KeyPairAnnotationKey": { + "type": "object", + "properties": { + "oa": { + "anyOf": [ + { + "$ref": "#/components/schemas/AnnotationKey" + }, + { + "type": "null" + } + ] + }, + "sa": { + "anyOf": [ + { + "$ref": "#/components/schemas/AnnotationKey" + }, + { + "type": "null" + } + ] + } + }, + "required": [], + "additionalProperties": false + }, + "ReviewedArtifactRelation": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ArtifactRelation" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ArtifactRelation" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionString": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ArtifactReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Presence": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "Presence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Name": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Description": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Description" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Owner": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "Owner" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/ReviewedArtifactRelation" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Uri": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Uri" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Revision": { + "$ref": "#/components/schemas/ReviewedOptionString" + } + }, + "required": [ + "Revision" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Fragment": { + "$ref": "#/components/schemas/ReviewedOptionString" + } + }, + "required": [ + "Fragment" + ], + "additionalProperties": false + } + ] + }, + "ReviewedVecId": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionMessageValue": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/MessageValue" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/MessageValue" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionLifelineBinding": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/LifelineBinding" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/LifelineBinding" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "FacetSelector": { + "oneOf": [ + { + "type": "object", + "properties": { + "Header": { + "$ref": "#/components/schemas/HeaderFacet" + } + }, + "required": [ + "Header" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExchangeItem": { + "$ref": "#/components/schemas/ExchangeItemFacet" + } + }, + "required": [ + "ExchangeItem" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Category": { + "$ref": "#/components/schemas/CategoryFacet" + } + }, + "required": [ + "Category" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Interface": { + "$ref": "#/components/schemas/InterfaceFacet" + } + }, + "required": [ + "Interface" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Data": { + "$ref": "#/components/schemas/DataFacet" + } + }, + "required": [ + "Data" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Field": { + "$ref": "#/components/schemas/FieldFacet" + } + }, + "required": [ + "Field" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Port": { + "$ref": "#/components/schemas/PortFacet" + } + }, + "required": [ + "Port" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Scenario": { + "$ref": "#/components/schemas/ScenarioFacet" + } + }, + "required": [ + "Scenario" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Lifeline": { + "$ref": "#/components/schemas/LifelineFacet" + } + }, + "required": [ + "Lifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Occurrence": { + "$ref": "#/components/schemas/OccurrenceFacet" + } + }, + "required": [ + "Occurrence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Event": { + "$ref": "#/components/schemas/EventFacet" + } + }, + "required": [ + "Event" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "$ref": "#/components/schemas/StateFacet" + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Constraint": { + "$ref": "#/components/schemas/ConstraintFacet" + } + }, + "required": [ + "Constraint" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/RelationFacet" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Member": { + "type": "object", + "properties": { + "collection": { + "$ref": "#/components/schemas/ReferenceCollection" + }, + "keys": { + "$ref": "#/components/schemas/KeyPairId" + } + }, + "required": [ + "collection", + "keys" + ], + "additionalProperties": false + } + }, + "required": [ + "Member" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Order": { + "$ref": "#/components/schemas/OrderedCollection" + } + }, + "required": [ + "Order" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Literal": { + "$ref": "#/components/schemas/KeyPairString" + } + }, + "required": [ + "Literal" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Annotation": { + "$ref": "#/components/schemas/KeyPairAnnotationKey" + } + }, + "required": [ + "Annotation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Binding": { + "$ref": "#/components/schemas/KeyPairId" + } + }, + "required": [ + "Binding" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Child": { + "$ref": "#/components/schemas/KeyPairId" + } + }, + "required": [ + "Child" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Incident": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "end": { + "$ref": "#/components/schemas/IncidentEnd" + } + }, + "required": [ + "keys", + "end" + ], + "additionalProperties": false + } + }, + "required": [ + "Incident" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Artifact": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "facet": { + "$ref": "#/components/schemas/ArtifactFacet" + } + }, + "required": [ + "keys", + "facet" + ], + "additionalProperties": false + } + }, + "required": [ + "Artifact" + ], + "additionalProperties": false + } + ] + }, + "FacetReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Header": { + "$ref": "#/components/schemas/HeaderReview" + } + }, + "required": [ + "Header" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExchangeItem": { + "$ref": "#/components/schemas/ExchangeItemReview" + } + }, + "required": [ + "ExchangeItem" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Category": { + "$ref": "#/components/schemas/CategoryReview" + } + }, + "required": [ + "Category" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Interface": { + "$ref": "#/components/schemas/InterfaceReview" + } + }, + "required": [ + "Interface" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Data": { + "$ref": "#/components/schemas/DataReview" + } + }, + "required": [ + "Data" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Field": { + "$ref": "#/components/schemas/FieldReview" + } + }, + "required": [ + "Field" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Port": { + "$ref": "#/components/schemas/PortReview" + } + }, + "required": [ + "Port" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Scenario": { + "$ref": "#/components/schemas/ScenarioReview" + } + }, + "required": [ + "Scenario" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Lifeline": { + "$ref": "#/components/schemas/LifelineReview" + } + }, + "required": [ + "Lifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Occurrence": { + "$ref": "#/components/schemas/OccurrenceReview" + } + }, + "required": [ + "Occurrence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Event": { + "$ref": "#/components/schemas/EventReview" + } + }, + "required": [ + "Event" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "$ref": "#/components/schemas/StateReview" + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Constraint": { + "$ref": "#/components/schemas/ConstraintReview" + } + }, + "required": [ + "Constraint" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/RelationReview" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Member": { + "type": "object", + "properties": { + "collection": { + "$ref": "#/components/schemas/ReferenceCollection" + }, + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "review": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "collection", + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Member" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Order": { + "type": "object", + "properties": { + "collection": { + "$ref": "#/components/schemas/OrderedCollection" + }, + "review": { + "$ref": "#/components/schemas/ReviewedVecId" + } + }, + "required": [ + "collection", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Order" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Literal": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairString" + }, + "review": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Literal" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Annotation": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairAnnotationKey" + }, + "review": { + "$ref": "#/components/schemas/ReviewedOptionMessageValue" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Annotation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Binding": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "review": { + "$ref": "#/components/schemas/ReviewedOptionLifelineBinding" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Binding" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Child": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "review": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Child" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Incident": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "end": { + "$ref": "#/components/schemas/IncidentEnd" + }, + "review": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "keys", + "end", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Incident" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Artifact": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "review": { + "$ref": "#/components/schemas/ArtifactReview" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Artifact" + ], + "additionalProperties": false + } + ] + }, + "SemanticBaseline": { + "type": "object", + "properties": { + "facets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetReview" + } + } + }, + "required": [ + "facets" + ], + "additionalProperties": false + }, + "Drift": { + "type": "string", + "enum": [ + "Unreviewed", + "Unchanged", + "OaChanged", + "SaChanged", + "BothChanged" + ] + }, + "FacetDrift": { + "type": "object", + "properties": { + "selector": { + "$ref": "#/components/schemas/FacetSelector" + }, + "current": { + "$ref": "#/components/schemas/FacetReview" + }, + "drift": { + "$ref": "#/components/schemas/Drift" + } + }, + "required": [ + "selector", + "current", + "drift" + ], + "additionalProperties": false + }, + "SemanticDrift": { + "type": "object", + "properties": { + "own": { + "$ref": "#/components/schemas/Drift" + }, + "linked": { + "$ref": "#/components/schemas/Drift" + }, + "own_unreviewed": { + "type": "boolean" + }, + "linked_unreviewed": { + "type": "boolean" + } + }, + "required": [ + "own", + "linked", + "own_unreviewed", + "linked_unreviewed" + ], + "additionalProperties": false + }, + "LinkedSemanticImpact": { + "type": "object", + "properties": { + "objects": { + "$ref": "#/components/schemas/KeyPairId" + }, + "traces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + }, + "drift": { + "$ref": "#/components/schemas/Drift" + }, + "unreviewed": { + "type": "boolean" + } + }, + "required": [ + "objects", + "traces", + "drift", + "unreviewed" + ], + "additionalProperties": false + }, + "SemanticRecord": { + "oneOf": [ + { + "type": "object", + "properties": { + "Element": { + "$ref": "#/components/schemas/Element" + } + }, + "required": [ + "Element" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/Relation" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Artifact": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "required": [ + "Artifact" + ], + "additionalProperties": false + } + ] + }, + "ImpactRecord": { + "oneOf": [ + { + "type": "object", + "properties": { + "Element": { + "$ref": "#/components/schemas/Element" + } + }, + "required": [ + "Element" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/Relation" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Artifact": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "required": [ + "Artifact" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Diagram": { + "$ref": "#/components/schemas/Diagram" + } + }, + "required": [ + "Diagram" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Trace": { + "$ref": "#/components/schemas/Trace" + } + }, + "required": [ + "Trace" + ], + "additionalProperties": false + } + ] + }, + "SemanticImpact": { + "type": "object", + "properties": { + "object": { + "$ref": "#/components/schemas/Id" + }, + "before": { + "anyOf": [ + { + "$ref": "#/components/schemas/ImpactRecord" + }, + { + "type": "null" + } + ] + }, + "after": { + "anyOf": [ + { + "$ref": "#/components/schemas/ImpactRecord" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "object" + ], + "additionalProperties": false + }, + "SemanticDecision": { + "type": "string", + "enum": [ + "KeepTarget", + "TakeSource", + "Candidate" + ] + }, + "FacetResolution": { + "type": "object", + "properties": { + "facet": { + "$ref": "#/components/schemas/FacetSelector" + }, + "decision": { + "$ref": "#/components/schemas/SemanticDecision" + } + }, + "required": [ + "facet", + "decision" + ], + "additionalProperties": false + }, + "SemanticReviewRequest": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "resolutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetResolution" + }, + "maxItems": 5000 + }, + "reset": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetSelector" + }, + "maxItems": 5000, + "default": [] + } + }, + "required": [ + "source", + "resolutions" + ], + "additionalProperties": false + }, + "SemanticTransitionRequest": { + "type": "object", + "properties": { + "transition": { + "$ref": "#/components/schemas/TransitionRequest" + }, + "traces": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Id" + }, + "maxProperties": 100, + "default": {} + }, + "references": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Id" + }, + "maxProperties": 5000, + "default": {} + }, + "reviews": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticReviewRequest" + }, + "maxItems": 100, + "default": [] + }, + "candidates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticRecord" + }, + "maxItems": 200, + "default": [] + }, + "accepted_impacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticImpact" + }, + "maxItems": 200, + "default": [] + } + }, + "required": [ + "transition" + ], + "additionalProperties": false, + "description": "Canonical OA-to-SA references include historical UUIDs. Traces map selected source IDs to trace IDs. Combined resolutions/reset limit: 5,000. Candidates must equal exactly the result of their selected facets; accepted_impacts explicitly acknowledge exact induced changes." + }, + "SemanticReviewPreview": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "target": { + "$ref": "#/components/schemas/Id" + }, + "facets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetDrift" + } + }, + "acknowledged": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetSelector" + } + }, + "retired": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetSelector" + } + }, + "linked_impacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LinkedSemanticImpact" + } + } + }, + "required": [ + "source", + "target", + "facets", + "acknowledged", + "retired", + "linked_impacts" + ], + "additionalProperties": false + }, + "SemanticTransitionPlan": { + "type": "object", + "properties": { + "base_fingerprint": { + "type": "string" + }, + "request": { + "$ref": "#/components/schemas/SemanticTransitionRequest" + }, + "transition": { + "$ref": "#/components/schemas/TransitionPlan" + }, + "reviews": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticReviewPreview" + } + }, + "impacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticImpact" + } + }, + "conflicts": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Command" + }, + "maxItems": 200 + }, + "prepared_fingerprint": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "base_fingerprint", + "request", + "transition", + "reviews", + "impacts", + "conflicts", + "commands" + ], + "additionalProperties": false + }, + "SemanticTransitionEnvelope": { + "type": "object", + "properties": { + "base_revision": { + "$ref": "#/components/schemas/Revision" + }, + "plan": { + "$ref": "#/components/schemas/SemanticTransitionPlan" + } + }, + "required": [ + "base_revision", + "plan" + ], + "additionalProperties": false + }, + "SemanticQueryRequest": { + "type": "object", + "properties": { + "traces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + }, + "references": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Id" + }, + "maxProperties": 5000, + "default": {} + }, + "revision": { + "anyOf": [ + { + "$ref": "#/components/schemas/Revision" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "traces" + ], + "additionalProperties": false + }, + "SemanticQueryItem": { + "type": "object", + "properties": { + "trace": { + "$ref": "#/components/schemas/Id" + }, + "oa": { + "$ref": "#/components/schemas/Id" + }, + "sa": { + "$ref": "#/components/schemas/Id" + }, + "facets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetDrift" + } + }, + "drift": { + "$ref": "#/components/schemas/SemanticDrift" + }, + "linked_impacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LinkedSemanticImpact" + } + } + }, + "required": [ + "trace", + "oa", + "sa", + "facets", + "drift", + "linked_impacts" + ], + "additionalProperties": false + }, + "SemanticQueryResult": { + "type": "object", + "properties": { + "revision": { + "$ref": "#/components/schemas/Revision" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticQueryItem" + }, + "maxItems": 100 + } + }, + "required": [ + "revision", + "items" + ], + "additionalProperties": false + }, + "ExchangeFamily": { + "type": "string", + "enum": [ + "Work", + "Participant" + ] + }, + "Coverage": { + "type": "string", + "enum": [ + "All", + "InBehavior", + "OutsideBehavior" + ] + }, + "ExchangeLabels": { + "type": "string", + "enum": [ + "Name", + "Items", + "NameAndItems" + ] + }, + "CategoryFacet": { + "type": "string", + "enum": [ + "Family" + ] + }, + "ReviewedExchangeFamily": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeFamily" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeFamily" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "CategoryReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Family": { + "$ref": "#/components/schemas/ReviewedExchangeFamily" + } + }, + "required": [ + "Family" + ], + "additionalProperties": false + } + ] + }, + "EdgeKind": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Trace" + ] + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/RelationKind" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + } + ] + }, + "RelationKinds": { + "oneOf": [ + { + "type": "string", + "enum": [ + "All" + ] + }, + { + "type": "object", + "properties": { + "Only": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeKind" + } + } + }, + "required": [ + "Only" + ], + "additionalProperties": false + } + ] + }, + "CategorySelection": { + "oneOf": [ + { + "type": "string", + "enum": [ + "All" + ] + }, + { + "type": "object", + "properties": { + "Any": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "Any" + ], + "additionalProperties": false + } + ] + }, + "ContextSelection": { + "oneOf": [ + { + "type": "string", + "enum": [ + "All" + ] + }, + { + "type": "object", + "properties": { + "Any": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "Any" + ], + "additionalProperties": false + } + ] + }, + "ViewOptions": { + "type": "object", + "properties": { + "hidden_edges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "default": [] + }, + "relation_kinds": { + "$ref": "#/components/schemas/RelationKinds", + "default": "All" + }, + "work_categories": { + "$ref": "#/components/schemas/CategorySelection", + "default": "All" + }, + "participant_categories": { + "$ref": "#/components/schemas/CategorySelection", + "default": "All" + }, + "coverage": { + "$ref": "#/components/schemas/Coverage", + "default": "All" + }, + "work_contexts": { + "$ref": "#/components/schemas/ContextSelection", + "default": "All" + }, + "exchange_labels": { + "$ref": "#/components/schemas/ExchangeLabels", + "default": "Name" + } + }, + "required": [], + "additionalProperties": false, + "description": "Presentation only. Independent predicates intersect; category members union within a family. Only([]) hides all relations and traces. Any([]) remains an explicit empty selection. Traceability permits both-layer hidden/category/context references; ordinary projections require the diagram layer. Filtering preserves unfiltered automatic port positions." + }, + "CommunicationPortChoice": { + "oneOf": [ + { + "type": "object", + "properties": { + "Reuse": { + "type": "object", + "properties": { + "port": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "port" + ], + "additionalProperties": false + } + }, + "required": [ + "Reuse" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/Id" + }, + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "kind": { + "$ref": "#/components/schemas/ComponentPortKind" + }, + "orientation": { + "$ref": "#/components/schemas/ComponentPortOrientation" + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "kind", + "orientation" + ], + "additionalProperties": false + } + }, + "required": [ + "Create" + ], + "additionalProperties": false + } + ] + }, + "CommunicationEndpointDecision": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "source_port": { + "$ref": "#/components/schemas/CommunicationPortChoice" + }, + "target_port": { + "$ref": "#/components/schemas/CommunicationPortChoice" + } + }, + "required": [ + "source", + "source_port", + "target_port" + ], + "additionalProperties": false + }, + "ReviewedOptionOperationUse": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/OperationUse" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/OperationUse" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOccurrenceEndpoint": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/OccurrenceEndpoint" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/OccurrenceEndpoint" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedContextualLinkPurpose": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ContextualLinkPurpose" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ContextualLinkPurpose" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "OccurrenceEndpoint": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "maxItems": 64 + }, + "occurrence": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "references", + "occurrence" + ], + "additionalProperties": false, + "description": "Ordered reference-occurrence IDs in an explicit caller owner, followed by the leaf contribution ID. Empty references means a direct contribution; sequence definition IDs are not path components." + }, + "ContextualLinkPurpose": { + "oneOf": [ + { + "type": "object", + "properties": { + "Precedence": { + "type": "object", + "properties": { + "guard": { + "type": "string" + } + }, + "required": [ + "guard" + ], + "additionalProperties": false + } + }, + "required": [ + "Precedence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Exchange": { + "type": "object", + "properties": { + "exchange": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "exchange" + ], + "additionalProperties": false + } + }, + "required": [ + "Exchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CommonWork": { + "type": "object", + "properties": { + "work": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "work" + ], + "additionalProperties": false + } + }, + "required": [ + "CommonWork" + ], + "additionalProperties": false + } + ] + }, + "OperationUse": { + "type": "object", + "properties": { + "allocation": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + } + }, + "required": [], + "additionalProperties": false, + "description": "Present with absent/null allocation retains unresolved operation intent. A selected UUID identifies exactly an InterfaceItemAllocation, never an item, port, or name. Reply derives operation from its exact correlated Call." + }, + "OperationOmission": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "rationale": { + "type": "string" + } + }, + "required": [ + "source", + "rationale" + ], + "additionalProperties": false + } + } + } +} diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/03.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/03.request.http new file mode 100644 index 00000000..59314b96 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/03.request.http @@ -0,0 +1,7 @@ +POST /api/v1/projects/import-source-project HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close +Content-Type: application/json +Content-Length: 323 + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA original\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/03.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/03.response.http new file mode 100644 index 00000000..12bd0297 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/03.response.http @@ -0,0 +1,11 @@ +HTTP/1.1 201 Created +content-type: application/json +etag: "p-53a28b61-1736-4bc4-8553-28995488647f-r1" +location: /api/v1/projects/53a28b61-1736-4bc4-8553-28995488647f +x-request-id: c0ac6bb1-8c2c-42c6-8794-026fbea5e6b6 +cache-control: no-cache +content-length: 209 +connection: close +date: Fri, 02 Oct 2026 00:56:34 GMT + +{"elements":1,"migration":null,"model_id":"93200000-0000-4000-8000-000000000001","name":"Package QA original","relations":0,"resource_id":"53a28b61-1736-4bc4-8553-28995488647f","revision":1,"schema_version":7} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/04.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/04.request.http new file mode 100644 index 00000000..851bc5b8 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/04.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/53a28b61-1736-4bc4-8553-28995488647f HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/04.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/04.response.http new file mode 100644 index 00000000..4578eb78 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/04.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-53a28b61-1736-4bc4-8553-28995488647f-r1" +x-request-id: e5e7d88e-5dad-4392-aea8-4603495540c7 +cache-control: no-cache +content-length: 814 +connection: close +date: Fri, 02 Oct 2026 00:56:34 GMT + +{"resource_id":"53a28b61-1736-4bc4-8553-28995488647f","revision":1,"model":{"schema_version":7,"id":"93200000-0000-4000-8000-000000000001","alias":"package_qa","name":"Package QA original","description":"","elements":{"93200000-0000-4000-8000-000000000002":{"id":"93200000-0000-4000-8000-000000000002","alias":"inspect_package","name":"Inspect package","description":"","parent":null,"body":{"Oa":"Activity"}}},"relations":{},"diagrams":{},"artifact_links":{},"traces":{}},"source_project":{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA original\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/05.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/05.request.http new file mode 100644 index 00000000..7002ffe8 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/05.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/53a28b61-1736-4bc4-8553-28995488647f/source-project HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/05.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/05.response.http new file mode 100644 index 00000000..6418523d --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/05.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-53a28b61-1736-4bc4-8553-28995488647f-r1" +x-request-id: f7be616d-817f-458e-828f-dfb349e0702b +cache-control: no-cache +content-length: 323 +connection: close +date: Fri, 02 Oct 2026 00:56:34 GMT + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA original\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/06.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/06.request.http new file mode 100644 index 00000000..fee19eb9 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/06.request.http @@ -0,0 +1,8 @@ +PUT /api/v1/projects/53a28b61-1736-4bc4-8553-28995488647f/source-project HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close +Content-Type: application/json +Content-Length: 321 +If-Match: "p-53a28b61-1736-4bc4-8553-28995488647f-r1" + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/06.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/06.response.http new file mode 100644 index 00000000..c84ce8a9 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/06.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-53a28b61-1736-4bc4-8553-28995488647f-r2" +x-request-id: f36cbe02-54a0-43a6-8491-20b63b9606cc +cache-control: no-cache +content-length: 963 +connection: close +date: Fri, 02 Oct 2026 00:56:34 GMT + +{"changed":true,"issues":[{"code":"unallocated_leaf","column":5,"field":"allocation","line":4,"message":"Allocate leaf 'Inspect package' to a performer.","object_id":"93200000-0000-4000-8000-000000000002","path":"model.arcadia","severity":"warning","span":{"end":244,"start":154}},{"code":"work_without_behavior_context","column":5,"line":4,"message":"Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.","object_id":"93200000-0000-4000-8000-000000000002","path":"model.arcadia","severity":"warning","span":{"end":244,"start":154}}],"migration":null,"revision":2,"source_project":{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/07.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/07.request.http new file mode 100644 index 00000000..0e95d53e --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/07.request.http @@ -0,0 +1,8 @@ +PUT /api/v1/projects/53a28b61-1736-4bc4-8553-28995488647f/source-project HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close +Content-Type: application/json +Content-Length: 326 +If-Match: "p-53a28b61-1736-4bc4-8553-28995488647f-r1" + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"STALE MUST NOT PERSIST\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/07.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/07.response.http new file mode 100644 index 00000000..7bc4151e --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/07.response.http @@ -0,0 +1,9 @@ +HTTP/1.1 412 Precondition Failed +content-type: application/problem+json +x-request-id: 22dd4a50-2a2b-46b4-946e-af76e1aaccc3 +cache-control: no-cache +content-length: 220 +connection: close +date: Fri, 02 Oct 2026 00:56:34 GMT + +{"type":"urn:arcadia:problem:revision_conflict","title":"Precondition Failed","status":412,"code":"revision_conflict","detail":"Project changed. Reload and review the current model before retrying.","current_revision":2} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/08.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/08.request.http new file mode 100644 index 00000000..851bc5b8 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/08.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/53a28b61-1736-4bc4-8553-28995488647f HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/08.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/08.response.http new file mode 100644 index 00000000..0f0e4985 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/08.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-53a28b61-1736-4bc4-8553-28995488647f-r2" +x-request-id: bb973978-5af6-4ff9-927e-35a324e3aa2a +cache-control: no-cache +content-length: 810 +connection: close +date: Fri, 02 Oct 2026 00:56:34 GMT + +{"resource_id":"53a28b61-1736-4bc4-8553-28995488647f","revision":2,"model":{"schema_version":7,"id":"93200000-0000-4000-8000-000000000001","alias":"package_qa","name":"Package QA edited","description":"","elements":{"93200000-0000-4000-8000-000000000002":{"id":"93200000-0000-4000-8000-000000000002","alias":"inspect_package","name":"Inspect package","description":"","parent":null,"body":{"Oa":"Activity"}}},"relations":{},"diagrams":{},"artifact_links":{},"traces":{}},"source_project":{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/09.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/09.request.http new file mode 100644 index 00000000..86fed38b --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/09.request.http @@ -0,0 +1,4 @@ +GET /health/ready HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/09.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/09.response.http new file mode 100644 index 00000000..ca4b6360 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/09.response.http @@ -0,0 +1,9 @@ +HTTP/1.1 200 OK +content-type: application/json +x-request-id: 83e645d9-8088-4c97-baf7-349c26a809aa +cache-control: no-cache +content-length: 15 +connection: close +date: Fri, 02 Oct 2026 00:56:35 GMT + +{"status":"ok"} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/10.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/10.request.http new file mode 100644 index 00000000..851bc5b8 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/10.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/53a28b61-1736-4bc4-8553-28995488647f HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/10.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/10.response.http new file mode 100644 index 00000000..ab4b5f70 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/10.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-53a28b61-1736-4bc4-8553-28995488647f-r2" +x-request-id: 0f10dd45-7c9a-4ab9-93f3-5196b4dfe6de +cache-control: no-cache +content-length: 810 +connection: close +date: Fri, 02 Oct 2026 00:56:35 GMT + +{"resource_id":"53a28b61-1736-4bc4-8553-28995488647f","revision":2,"model":{"schema_version":7,"id":"93200000-0000-4000-8000-000000000001","alias":"package_qa","name":"Package QA edited","description":"","elements":{"93200000-0000-4000-8000-000000000002":{"id":"93200000-0000-4000-8000-000000000002","alias":"inspect_package","name":"Inspect package","description":"","parent":null,"body":{"Oa":"Activity"}}},"relations":{},"diagrams":{},"artifact_links":{},"traces":{}},"source_project":{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/11.request.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/11.request.http new file mode 100644 index 00000000..7002ffe8 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/11.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/53a28b61-1736-4bc4-8553-28995488647f/source-project HTTP/1.1 +Host: 127.0.0.1:54753 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/11.response.http b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/11.response.http new file mode 100644 index 00000000..d3e8df4c --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/11.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-53a28b61-1736-4bc4-8553-28995488647f-r2" +x-request-id: d4332036-6524-46c7-9b58-2e6cf52f0400 +cache-control: no-cache +content-length: 321 +connection: close +date: Fri, 02 Oct 2026 00:56:35 GMT + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/accepted-envelope.json b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/accepted-envelope.json new file mode 100644 index 00000000..3cba0a1e --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/accepted-envelope.json @@ -0,0 +1,33 @@ +{ + "resource_id": "53a28b61-1736-4bc4-8553-28995488647f", + "revision": 2, + "model": { + "schema_version": 7, + "id": "93200000-0000-4000-8000-000000000001", + "alias": "package_qa", + "name": "Package QA edited", + "description": "", + "elements": { + "93200000-0000-4000-8000-000000000002": { + "id": "93200000-0000-4000-8000-000000000002", + "alias": "inspect_package", + "name": "Inspect package", + "description": "", + "parent": null, + "body": { + "Oa": "Activity" + } + } + }, + "relations": {}, + "diagrams": {}, + "artifact_links": {}, + "traces": {} + }, + "source_project": { + "entry": "model.arcadia", + "files": { + "model.arcadia": "arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n" + } + } +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/edited.arcadia b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/edited.arcadia new file mode 100644 index 00000000..b735b8df --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/edited.arcadia @@ -0,0 +1,5 @@ +arcadia 7; +// Package QA authored comment — preserve exactly. +project package_qa "Package QA edited" id "93200000-0000-4000-8000-000000000001" { + oa_activity inspect_package "Inspect package" id "93200000-0000-4000-8000-000000000002" {} +} diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/first.stderr.log b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/first.stderr.log new file mode 100644 index 00000000..5cbc9cb3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/first.stderr.log @@ -0,0 +1 @@ +arcadia-server 0.2.0 listening on 127.0.0.1:54753; data C:\ar-compact-01a0d717\.local\package39\server-smoke-unicode02\store diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/first.stdout.log b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/first.stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/help.stderr.txt b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/help.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/help.stdout.txt b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/help.stdout.txt new file mode 100644 index 00000000..828690d7 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/help.stdout.txt @@ -0,0 +1,7 @@ +Arcadia model REST service + +Usage: arcadia-server [--bind IP:PORT] [--data-dir PATH] [--token-file PATH] + +Defaults: 127.0.0.1:8787; platform-local ArcadiaStudio/server directory. +Token required for non-loopback binds. ARCADIA_SERVER_TOKEN is an alternative. +Keep the data directory on local storage. See docs/server.md for deployment and API limits. diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/original.arcadia b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/original.arcadia new file mode 100644 index 00000000..31887fa3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/original.arcadia @@ -0,0 +1,5 @@ +arcadia 7; +// Package QA authored comment — preserve exactly. +project package_qa "Package QA original" id "93200000-0000-4000-8000-000000000001" { + oa_activity inspect_package "Inspect package" id "93200000-0000-4000-8000-000000000002" {} +} diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/package-provenance.json b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/package-provenance.json new file mode 100644 index 00000000..b3bcf5f2 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/package-provenance.json @@ -0,0 +1,685 @@ +{ + "version": "0.2.0-preview.compact-help.20261001", + "target": "x86_64-pc-windows-gnullvm", + "acceptance": "Packaging integrity only; native clean-environment verification required.", + "build": "Prebuilt inputs supplied by caller; this script does not establish build profile or source revision.", + "build_evidence": { + "assertion": "Caller-supplied build evidence; target and binary hashes checked, source/compiler/profile statements not inferred or independently proven by packaging.", + "evidence": { + "source_identity": "Desktop: 6e7c4ddaf0775198384a8c4882809ea8e14b2976; unchanged reused server: 715036e132677dd2bc2fb37ed316d93dc9987aec; package documentation: ea23e229260d7d050b3c3b88e77c3a851e936abe", + "profile": "dev, unoptimized, debug assertions enabled", + "compiler": "rustc 1.98.1 (48a229cea 2026-09-01)", + "target": "x86_64-pc-windows-gnullvm", + "binary_sha256": { + "arcadia-studio.exe": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237" + }, + "binary_origins": { + "arcadia-studio.exe": { + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "build_command": "cargo build --locked -p oa-desktop --bin arcadia-studio", + "evidence": "harness/experiments/compact-help-20260925/candidate-6e7c/build.log", + "native_evidence": "harness/compact-help-validation-20261001.md" + }, + "arcadia-server.exe": { + "source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "reuse": true, + "release": "v0.2.0-preview.integrated.20260924", + "original_build_evidence": { + "source_identity": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "profile": "dev", + "target": "x86_64-pc-windows-gnullvm", + "compiler": "rustc 1.98.1 (48a229cea 2026-09-01)", + "binary_sha256": { + "arcadia-studio.exe": "2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237" + }, + "mandatory_gate": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\summary.json", + "bytes": 10594, + "sha256": "8b655c429b4abdeec0476a8397565fcd07682642f1d7b87e9a0c4eec63e22fc9" + }, + "source_manifest": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\inputs-before.json", + "bytes": 1740725, + "sha256": "38e4f7d37b67b06b7991d48560c5bd56ec5893909f3cffd224442d15bdc35f88" + }, + "environment": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\environment.json", + "bytes": 8981, + "sha256": "d9d89bc52a9312044e277f92b1585350fc86d5cc963dd91a39c669bc6ca2f39f" + }, + "artifact_relocation": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\artifact-relocation.json", + "bytes": 6181, + "sha256": "3298225b9890aab1a8029a4d6dff42a8162f8d77f2c71bcdd379d25ebcb1f9d6" + }, + "scope": "Exact preserved CargoJSON-identified individual product builds from final04; supplemental combined build is separately recorded. Native/package acceptance is separate." + }, + "unchanged_input_check": "git diff --exit-code 715036e132677dd2bc2fb37ed316d93dc9987aec ea23e229260d7d050b3c3b88e77c3a851e936abe -- crates/oa-core crates/oa-server Cargo.toml Cargo.lock" + } + }, + "package_documentation_source": "ea23e229260d7d050b3c3b88e77c3a851e936abe", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "acceptance_scope": "Contribution gates and prior released-server evidence are separate from fresh packaged desktop/server checks; this is an unfinished Windows development preview, not complete OA/SA acceptance." + } + }, + "imports": { + "arcadia-studio.exe": [ + "advapi32.dll", + "api-ms-win-core-synch-l1-2-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-math-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "bcrypt.dll", + "bcryptprimitives.dll", + "dwmapi.dll", + "gdi32.dll", + "imm32.dll", + "kernel32.dll", + "libunwind.dll", + "ntdll.dll", + "ole32.dll", + "oleaut32.dll", + "opengl32.dll", + "shell32.dll", + "user32.dll", + "uxtheme.dll", + "ws2_32.dll" + ], + "arcadia-server.exe": [ + "api-ms-win-core-synch-l1-2-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-math-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "bcryptprimitives.dll", + "kernel32.dll", + "libunwind.dll", + "ntdll.dll", + "ws2_32.dll" + ], + "libunwind.dll": [ + "api-ms-win-crt-convert-l1-1-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-filesystem-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "kernel32.dll" + ] + }, + "input_sha256": { + "arcadia-studio.exe": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237", + "libunwind.dll": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "licenses/llvm-mingw-LICENSE.TXT": "8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee", + "LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "README.md": "597cfb8da873e019d2658420f18ec059f0185fa9106ff9eafe934dfdd6ed266b", + "deployment/Dockerfile": "72c04aef4ec879955ed3bdf315987553d018ef46e4b8f350f0f6fe380c453eb7", + "deployment/Dockerfile.dockerignore": "6bb7d7496110b11a531cb8cd923864c6610850a8f1c4de8a797f54c7156f29e1", + "deployment/arcadia-server.service": "1e6c6bb4065e25f8fe1d558a4ed0bbd4844782a4377c2482488db1e6f9cab01d", + "docs/api.html": "d06e32b3da838e519630a4151111bb40a383ccf294eb18443118a7498700a993", + "docs/api.rst": "d78f138d011dd0af28bd53a65d1d93381d031f680191779d4f3030a264eb2e74", + "docs/language.html": "77c14e548f5d2deea0c21a3a931347e1c87449f5be8503f6c51ceaef37be9a33", + "docs/language.rst": "7117a66e16b34cd6ce033532e984c7ca49b4611e296fb1c46c5f737fe9169ec6", + "docs/linux-packaging.md": "41a1bb1095801df37a1411341c5791d55ea8c365739314d599a60269ac4bc7a0", + "docs/openapi.json": "2ad69da52fb574435525990c906948ce54b1efd9247cdde8726969f382731790", + "docs/preview-human-checks.md": "50b56c328c22587e1187f6e614bc914210095cf635c301f335e82de11201b890", + "docs/research-v2-service.md": "4828df5bc679e7c71f49b4b85c9e7dacbec52f46d416fed48af70e08886d4e4e", + "docs/server.md": "4eb24937d424ba8b384e1734e02a6f8e963ae11d2715889c92b14b39ff2e4a48", + "docs/windows-packaging.md": "2d5ef8a9a8741e6e7f6df9db9fd9a839f806ea782a6f2063c3a98725ecfd36b6", + "examples/coastal-rescue.arcadia": "7e183ef9fd8154d3074303f1956cd0d9871c19e3ffc630d333b0bffbd6e30e17", + "examples/coastal-rescue.json": "242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195", + "examples/legacy-v1-coastal-rescue.arcadia": "4dbbbdf8bc7e6cb8e0a81dd678069dae585a9e5187c59bc3665e1fdab3f1a86a", + "examples/legacy-v1-coastal-rescue.oa.json": "fd0e9dedfb7adb922dc0575cc2b820d40344d639f1d8052bd70363aa59de9c24", + "examples/release1/README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "examples/release1/evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "examples/release1/expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "examples/release1/model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "examples/release1/model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "examples/release1/oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f", + "examples/release1/oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "examples/release1/oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "examples/release1/oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "examples/release1/oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "examples/release1/oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "examples/release1/oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "examples/release1/oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "examples/release1/oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "examples/release1/oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "examples/release1/oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "examples/release1/project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "examples/release1/sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "examples/release1/sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "examples/release1/sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "examples/release1/sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "examples/release1/sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "examples/release1/sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "examples/release1/sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "examples/release1/sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "examples/release1/sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c", + "examples/release1/sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "examples/release1/sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "examples/release1/sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "examples/release1/traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "examples/release1/transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "examples/release1/transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "examples/release1/views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "examples/release1/views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "examples/release1/views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "examples/release1/views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "examples/release1/views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230", + "examples/routing-workshop.arcadia": "dc6b75da72884d399132ed9e300fa5a26b73d802bb526c9af986ae9eeb0a646a", + "examples/routing-workshop.json": "8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14", + "examples/source-project/oa.arcadia": "5f60642f211b2d352a951092faeeb7503d4fb7f6f7fca99e810347231101d31c", + "examples/source-project/project.arcadia": "787f6b67b179ffd221f7e5faf1a4edd74cfd116aa1e3b5e9ed9f22fbff612d8d", + "examples/source-project/sa/assurance.arcadia": "ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f", + "examples/source-project/sa/participants.arcadia": "1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88", + "examples/source-project/sa/reporting.arcadia": "f0b7443f728912ca163de39b6055876b533a77feaa3219b2d40a2dd65712e058", + "examples/source-project/views.arcadia": "e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f", + "examples/text-first/README.md": "4ec8250d5ed556f1d496e8c85137e973e802ecb11df1a36488411e8cdc5a9f9e", + "examples/text-first/project.arcadia": "f441535c623e0cf20e1875eb2cd33b587ed00e078c37af39cb36d89bb5edc19a", + "licenses/dependencies/oa-core-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/oa-desktop-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/oa-server-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/iced_widget-0.14.2/ARCADIA-PATCH.md": "d3acb98e5f423970b0bf4198373efddaea6f3a51aa282da571cf95c0f5690504", + "licenses/dependencies/iced_widget-0.14.2/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/arrayref-0.3.9/LICENSE": "1bc7e6f475b3ec99b7e2643411950ae2368c250dd4c5c325f80f9811362a94a1", + "licenses/dependencies/arrayvec-0.7.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/arrayvec-0.7.8/LICENSE-MIT": "4da95ec4ecb65b738d470b7d762894ad9c97da93e6cbfb18b570fc2c96f4b871", + "licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-APACHE": "0e8a410375e1ee5c75c6198b08b534fec6e5edef766cf971bab4a404542636ab", + "licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-MIT": "c733ccf8ab25df175a63d9d844677b98e3a5ab8f8de1c1616087e6868a7f948e", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY": "6226d0632e2e1a80c23597e964da9812ae193c535fe058154afb034e94167aa5", + "licenses/dependencies/autocfg-1.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/autocfg-1.5.1/LICENSE-MIT": "27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac", + "licenses/dependencies/axum-core-0.5.6/LICENSE": "008c87afcd2e626eaf564093250bed06dd7efb5732113264bba3dda8f1c556a1", + "licenses/dependencies/axum-0.8.9/LICENSE": "6a13bc24a100a6812f053879ec51b126b103af7cda6dbf48c4188722da44da9f", + "licenses/dependencies/base64-0.22.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/base64-0.22.1/LICENSE-MIT": "0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7", + "licenses/dependencies/bit-set-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/bit-set-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7", + "licenses/dependencies/bit-vec-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/bit-vec-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7", + "licenses/dependencies/bitflags-2.13.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/bitflags-2.13.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/bytes-1.12.1/LICENSE": "45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42", + "licenses/dependencies/cc-1.4.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cc-1.4.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/cfg_aliases-0.2.2/LICENSE": "31b94860253d8ec7b4529f51901044d3b459d6292d996504a36b1bae3a36a812", + "licenses/dependencies/cfg-if-1.0.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cfg-if-1.0.4/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/chacha20-0.10.2/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5", + "licenses/dependencies/chacha20-0.10.2/LICENSE-MIT": "b8c6939380a400f53e11923d50fcc4dd2fa1ba8339fd9d04cda38a0251b6c9b0", + "licenses/dependencies/clipboard-win-5.4.1/supplement/DoumanAsh-clipboard-win-3b27cf2bfd1a-LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/codespan-reporting-0.12.0/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/core_maths-0.1.1/LICENSE": "9ebf8c4cc0b735ca13a766451f7b8097db3185975ceb2ba94b5abf439156a91f", + "licenses/dependencies/cosmic-text-0.15.0/fonts/FiraMono-LICENSE": "587dd9548304fd421cd254f7550bd101c1250ffc95417f2f7f92d55b44ecbe53", + "licenses/dependencies/cosmic-text-0.15.0/fonts/Inter-LICENSE": "3c8d13d97ea5eb62868833a377034c6be6a9833e768d32abec2a767a8101e4bc", + "licenses/dependencies/cosmic-text-0.15.0/fonts/NotoSans-LICENSE": "5ec4347054089def6904da61d04f0360968f9ef36634b1fe007a5b6ec2f7aa96", + "licenses/dependencies/cosmic-text-0.15.0/LICENSE-APACHE": "000b4962e6b27176a0ff89cce4be555b16472cafb5671eb2804a8fdac6854793", + "licenses/dependencies/cosmic-text-0.15.0/LICENSE-MIT": "95557bafe728379e206f3b6d4aceeaa054d271c71d722411a6222e2dec01138c", + "licenses/dependencies/cpufeatures-0.3.1/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5", + "licenses/dependencies/cpufeatures-0.3.1/LICENSE-MIT": "73b9dc2e79c7308998dd30296e073aefaefb944a68fb89aa412c23c0edcabcaa", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-ZLIB": "b3ec01ad0869c5c50937bc68780cd0bb44e235ad858dfa54a7a381dced9b115a", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-APACHE": "b59affd015e517ed998dd735757f9a3693643cd389609947ed54074234a10784", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-MIT": "c138726a726ac37bae09d0f8a48e74e8e3aa8a8952fcd10fae0fb224cc1c05f1", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-ZLIB": "01e533bd94e8f1c32b2c2531e2c398de7d35d7804add3d574b4e1fe581d53537", + "licenses/dependencies/displaydoc-0.2.7/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/displaydoc-0.2.7/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/document-features-0.2.12/LICENSE-APACHE": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff", + "licenses/dependencies/document-features-0.2.12/LICENSE-MIT": "aa893340d14b9844625be6a50ac644169a01b52f0211cbf81b09e1874c8cd81d", + "licenses/dependencies/dpi-0.1.2/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a", + "licenses/dependencies/dpi-0.1.2/LICENSE-LIBM-MIT": "9eff396a99bafd208e7126602420d6864f6066c08b84485a5b032320a9c01997", + "licenses/dependencies/equivalent-1.0.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/equivalent-1.0.2/LICENSE-MIT": "7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349", + "licenses/dependencies/error-code-3.4.0/LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/etagere-0.2.15/LICENSE-APACHE": "2d56a37f3d1e461f6b1539ab94e0e6bcc55443e376098aee85ac3b2890860290", + "licenses/dependencies/etagere-0.2.15/LICENSE-MIT": "9cfc9c9a4608501b5da3746948d2be2dd709ad51f6bcb0c1c685760ee3dde31f", + "licenses/dependencies/euclid-0.22.14/COPYRIGHT": "ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a", + "licenses/dependencies/euclid-0.22.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/euclid-0.22.14/LICENSE-MIT": "62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3", + "licenses/dependencies/fastrand-2.5.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/fastrand-2.5.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/float_next_after-1.0.0/LICENSE": "0604d5817110dacc5c7d9b7de6b58b962794603d4823c357157bd5dec4198bc5", + "licenses/dependencies/foldhash-0.1.5/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744", + "licenses/dependencies/foldhash-0.2.0/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744", + "licenses/dependencies/font-types-0.10.1/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/font-types-0.10.1/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/font-types-0.12.4/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/font-types-0.12.4/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/fontdb-0.23.0/LICENSE": "59a1fdac3bd550043599bd159fd70f09a1108c2b09e3751d39b11e1ff8e51f00", + "licenses/dependencies/fontdb-0.23.0/tests/fonts/LICENSE.txt": "b84fdd2c3da5db56385cdbb639795e90aa3e035c53bc3591135f18df3331451f", + "licenses/dependencies/form_urlencoded-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/form_urlencoded-1.2.2/LICENSE-MIT": "20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e", + "licenses/dependencies/futures-channel-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-channel-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-core-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-core-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-executor-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-executor-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-io-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-io-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-macro-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-macro-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-sink-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-sink-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-task-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-task-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-util-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-util-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/getrandom-0.2.17/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf", + "licenses/dependencies/getrandom-0.2.17/LICENSE-MIT": "42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737", + "licenses/dependencies/getrandom-0.4.3/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf", + "licenses/dependencies/getrandom-0.4.3/LICENSE-MIT": "523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b", + "licenses/dependencies/gl_generator-0.14.0/supplement/brendanzab-gl-rs-ea503e8d5fb6-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/glam-0.25.0/LICENSE-APACHE": "be33ddb87a30fd321ab100e2d922cba512e50ec7a63d8e62e5bfc0798dd4b585", + "licenses/dependencies/glam-0.25.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/glow-0.16.0/LICENSE-APACHE": "b8601fc79bdf8d8088f0938bea861ffc63ed0eebbedf25f44ab2cf2e85bd7edc", + "licenses/dependencies/glow-0.16.0/LICENSE-MIT": "cdbd06e25b8c9c5d6019949d2de8123f56d29cee4166396423d2ba8c81700845", + "licenses/dependencies/glow-0.16.0/LICENSE-ZLIB": "636f644f1e149eb62961657c0e34953681eff64435653912e7bd19992666faa5", + "licenses/dependencies/glutin_wgl_sys-0.6.1/LICENSE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4", + "licenses/dependencies/gpu-alloc-types-0.3.1/supplement/zakarumych-gpu-alloc-7ddd1fe576fc-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314", + "licenses/dependencies/gpu-alloc-0.6.2/supplement/zakarumych-gpu-alloc-61020bdcb4eb-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314", + "licenses/dependencies/gpu-allocator-0.27.0/LICENSE-APACHE": "0178e21322b0e88aa3aeb3146f6a9611bc1f8df6d98bdfb34be28b9dd56a8107", + "licenses/dependencies/gpu-allocator-0.27.0/LICENSE-MIT": "ad41be6cc6538b29b9346648f41432b5e460bad6be073b5eeaa41320ea2921dc", + "licenses/dependencies/gpu-descriptor-types-0.2.0/supplement/zakarumych-gpu-descriptor-9f2fb9546591-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613", + "licenses/dependencies/gpu-descriptor-0.3.2/supplement/zakarumych-gpu-descriptor-bb28b4e55b74-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613", + "licenses/dependencies/guillotiere-0.6.2/LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1", + "licenses/dependencies/half-2.7.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/half-2.7.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1", + "licenses/dependencies/harfrust-0.3.2/LICENSE": "7d43d2ef1ce976c7bfb423c696ad9938ccfc31e9ec5be752265e43fe9d29f697", + "licenses/dependencies/harfrust-0.3.2/scripts/ms-use/COPYING": "9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b", + "licenses/dependencies/hashbrown-0.15.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.15.5/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hashbrown-0.16.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.16.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hashbrown-0.17.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.17.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hexf-parse-0.2.1/supplement/CC0-1.0.txt": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499", + "licenses/dependencies/hexf-parse-0.2.1/supplement/hexf-parse-0.2.1-Cargo.toml": "4a56dbdbc12054fd33b7a2634a45cbbe6fe12f5e6f4081002cbfa527f7220c70", + "licenses/dependencies/http-body-util-0.1.5/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab", + "licenses/dependencies/http-body-1.1.0/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab", + "licenses/dependencies/http-1.5.0/LICENSE-APACHE": "8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a", + "licenses/dependencies/http-1.5.0/LICENSE-MIT": "dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff", + "licenses/dependencies/httparse-1.10.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/httparse-1.10.1/LICENSE-MIT": "391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3", + "licenses/dependencies/httpdate-1.0.3/LICENSE-APACHE": "4d10fe5f3aa176b05b229a248866bad70b834c173f1252a814ff4748d8a13837", + "licenses/dependencies/httpdate-1.0.3/LICENSE-MIT": "934887691e05d69d7c86ad3f2c360980fa30c15b035e351f3c9865e99da4debc", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c", + "licenses/dependencies/hyper-util-0.1.20/LICENSE": "9e0a97848ea543aef745c98e84fde696a9a3e0735538f6daefdd3cb1942effc1", + "licenses/dependencies/hyper-1.11.1/LICENSE": "2d01890414494742ba4a509fcec8efa40f6d8be22cbd72be7cff08d6fda4ec89", + "licenses/dependencies/iced_core-0.14.0/src/layout/DRUID_LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/iced_core-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_debug-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_futures-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/Fira-OFL.txt": "99bfb7c1e845b79d1031fcf37e678178eb4a8c7cc74a3f218ddf7223083a6fcd", + "licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/FiraSans-Regular-NOTICE.txt": "1e0baaa389b1647d06322ac9ea37822f31995408200ae5a2805a6b9bea0810d1", + "licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/Iced-Icons-NOTICE.txt": "8175634e30f84ef72a24c4965fb0e87f45a3c1274cc0e79e0473af582cffd1c4", + "licenses/dependencies/iced_program-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_renderer-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_runtime-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_tiny_skia-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_wgpu-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_winit-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced-0.14.0/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/icu_collections-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_locale_core-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_normalizer_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_normalizer-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_properties_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_properties-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_provider-2.3.1/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/idna_adapter-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/idna_adapter-1.2.2/LICENSE-MIT": "8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726", + "licenses/dependencies/idna-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/idna-1.1.0/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/indexmap-2.14.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/indexmap-2.14.1/LICENSE-MIT": "ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055", + "licenses/dependencies/ipnet-2.12.1/LICENSE-APACHE": "87d9feb9238c6bd8e0024fc4733b06cff036f89f36d93b7df1c8a0549bbb7a5b", + "licenses/dependencies/ipnet-2.12.1/LICENSE-MIT": "47dc9ff29128ddfb4d6a0435383c9f89120bc374dbcc1dd00b933a0b28aa7865", + "licenses/dependencies/itoa-1.0.18/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/itoa-1.0.18/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/jobserver-0.1.35/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/jobserver-0.1.35/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/khronos_api-3.1.0/supplement/brendanzab-gl-rs-f150967b1c44-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/khronos-egl-6.0.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/khronos-egl-6.0.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/kurbo-0.10.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/kurbo-0.10.4/LICENSE-MIT": "23c23145f6eac25c28cdcc03d38506a5712a9a8cffb5bd5301457f6173ea696e", + "licenses/dependencies/libc-0.2.189/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/libc-0.2.189/LICENSE-MIT": "123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e", + "licenses/dependencies/libloading-0.8.9/LICENSE": "b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f", + "licenses/dependencies/libm-0.2.16/LICENSE.txt": "3823dda7cf046602f4b4e77ec8e227863dc4736037cc85bb33d9f19febe16bb7", + "licenses/dependencies/lilt-0.8.2/LICENSE": "120b2f21f9b9f98ef4159de09f9a55a3afb6733dd1c0b1d9eeec7f136465b2cd", + "licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1", + "licenses/dependencies/litemap-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/litrs-1.0.0/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/litrs-1.0.0/LICENSE-MIT": "7dc1552e88f49132cb358b1b962fc5e79fa42d70bcbb88c526d33e45b8e98036", + "licenses/dependencies/lock_api-0.4.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/lock_api-0.4.14/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/log-0.4.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/log-0.4.34/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-MIT": "1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-ZLIB": "09785877275ffada6c371b652a30e95c26b435126fc0fc62f1bc2d72171f80a4", + "licenses/dependencies/lru-0.16.4/LICENSE": "061dc50af2cd9340703daf61978af3200cf681b12ea67a323c33ba109a23a45e", + "licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/matchit-0.8.4/LICENSE": "de701d0618d694feb1af90f02181a1763d9b0bdeb70a3a592781e529077dba65", + "licenses/dependencies/matchit-0.8.4/LICENSE.httprouter": "162ce11ad71338d0a0c6ebaf5c48af72c6ae237b468859d3656fe2d9ed3f3a85", + "licenses/dependencies/memchr-2.8.3/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/memchr-2.8.3/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f", + "licenses/dependencies/memchr-2.8.3/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/memmap2-0.9.11/LICENSE-APACHE": "04ea4849dba9dcae07113850c6f1b1a69052c625210639914eee352023f750ad", + "licenses/dependencies/memmap2-0.9.11/LICENSE-MIT": "0d25d03b5ab49576178ad0cae7a2648d12c17ad0452fe49c07e55e4b59aa5257", + "licenses/dependencies/mime-0.3.17/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/mime-0.3.17/LICENSE-MIT": "df9cfd06d8a44d9a671eadd39ffd97f166481da015a30f45dfd27886209c5922", + "licenses/dependencies/mio-1.2.3/LICENSE": "07919255c7e04793d8ea760d6c2ce32d19f9ff02bdbdde3ce90b1e1880929a9b", + "licenses/dependencies/naga-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/naga-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/num-bigint-0.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-bigint-0.5.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/num-integer-0.1.47/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-integer-0.1.47/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/num-traits-0.2.19/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-traits-0.2.19/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/once_cell-1.21.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/once_cell-1.21.4/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/ordered-float-5.5.0/LICENSE-MIT": "f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4", + "licenses/dependencies/parking_lot_core-0.9.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/parking_lot_core-0.9.12/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/parking_lot-0.12.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/parking_lot-0.12.5/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/percent-encoding-2.3.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/percent-encoding-2.3.2/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/pin-project-lite-0.2.17/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/pkg-config-0.3.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/pkg-config-0.3.34/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/potential_utf-0.1.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/presser-0.3.1/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/presser-0.3.1/LICENSE-MIT": "090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b", + "licenses/dependencies/proc-macro2-1.0.107/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/proc-macro2-1.0.107/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-APACHE": "10d30a673cd5e9349bdc02aeb48f14b3386d27d0da32df8f0a555d4aa16aa551", + "licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-MIT": "c8167fdeeed46d3f244d3f85c5bf998ce889343691c32be2c61a8bc4b5c08333", + "licenses/dependencies/quinn-proto-0.11.17/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-proto-0.11.17/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quinn-udp-0.5.15/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-udp-0.5.15/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quinn-0.11.11/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-0.11.11/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quote-1.0.47/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/quote-1.0.47/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/rand_core-0.10.1/COPYRIGHT": "92b81db30f7ab6d693e0af5661a40d273ca1947e891123ed823924192c10cbc7", + "licenses/dependencies/rand_core-0.10.1/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51", + "licenses/dependencies/rand_core-0.10.1/LICENSE-MIT": "8b6e9feec03e7c9a5facb26855cecd31662bf989b636bcfe79521bdf8ac863f0", + "licenses/dependencies/rand_pcg-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5", + "licenses/dependencies/rand_pcg-0.10.2/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51", + "licenses/dependencies/rand_pcg-0.10.2/LICENSE-MIT": "2234e3cefee876aeb686ad89e978bdb07bf118a1186ab1cf161bcdf69d4b4f57", + "licenses/dependencies/rand-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5", + "licenses/dependencies/rand-0.10.2/LICENSE-APACHE": "35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab", + "licenses/dependencies/rand-0.10.2/LICENSE-MIT": "209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b", + "licenses/dependencies/range-alloc-0.1.5/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/range-alloc-0.1.5/LICENSE.MIT": "ba00052102ed87948bb8822d6e1c496260c83042887b22bb5caad922ec025a60", + "licenses/dependencies/rangemap-1.8.0/LICENSE-APACHE": "1c7745cc26c7294bc9dbc883bcd50700b99a8c0f4859bfce84ec555098ce1ab5", + "licenses/dependencies/rangemap-1.8.0/LICENSE-MIT": "29a4c3823ee29ee5a97c145574a1bac20629fd5e6708be1df0d25bab563e093c", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-APACHE.md": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-MIT.md": "9c5a80639a57c1c945570e7ebbca0706305849ce3c098021325cca9db2f7acc4", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-ZLIB.md": "ae895c8576e682f310fb70d93d9f99b1dd82872094c54a8f6cdfe2ca5c2d6ecb", + "licenses/dependencies/read-fonts-0.35.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/read-fonts-0.35.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/read-fonts-0.41.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/read-fonts-0.41.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-MIT": "24b2f2eff5a7622e87162823e260f00c6dfbce0e26d585d3d28c785f1edc80ed", + "licenses/dependencies/reqwest-0.12.28/LICENSE-APACHE": "751963a8b88c0e3a9f27e98933079fbcf09b9998b2c13ac49c2e4d58444520d6", + "licenses/dependencies/reqwest-0.12.28/LICENSE-MIT": "47d4e1803702728e03d30f8a848ae2249ba274bbd9f8443e803f7924d83cd371", + "licenses/dependencies/rfd-0.15.4/LICENSE": "65fc947f4bac882a2cd104ef73c246b1b037059df9f2b3a58b7f77f0b9e56071", + "licenses/dependencies/ring-0.17.14/LICENSE": "b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a", + "licenses/dependencies/ring-0.17.14/LICENSE-BoringSSL": "005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d", + "licenses/dependencies/ring-0.17.14/LICENSE-other-bits": "f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f", + "licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-MIT": "6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc", + "licenses/dependencies/ring-0.17.14/third_party/fiat/LICENSE": "9eacbcb81be660840c714a560a9d65ba07913db98dd4baf969f78dd499fdd60f", + "licenses/dependencies/rustc-hash-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/rustc-hash-1.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/rustc-hash-2.1.3/LICENSE-APACHE": "95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc", + "licenses/dependencies/rustc-hash-2.1.3/LICENSE-MIT": "30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652", + "licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-APACHE": "45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742", + "licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-MIT": "9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639", + "licenses/dependencies/rustls-webpki-0.103.15/LICENSE": "5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a", + "licenses/dependencies/rustls-0.23.43/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/rustls-0.23.43/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4", + "licenses/dependencies/rustls-0.23.43/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c", + "licenses/dependencies/ryu-1.0.23/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/ryu-1.0.23/LICENSE-BOOST": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/same-file-1.0.6/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/same-file-1.0.6/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14", + "licenses/dependencies/same-file-1.0.6/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/scopeguard-1.2.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/scopeguard-1.2.0/LICENSE-MIT": "fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7", + "licenses/dependencies/self_cell-1.3.0/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/self_cell-1.3.0/LICENSE-GPLv2": "f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505", + "licenses/dependencies/serde_core-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_core-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_derive-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_derive-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_json-1.0.151/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_json-1.0.151/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-MIT": "b9eb266294324f672cbe945fe8f2e32f85024f0d61a1a7d14382cdde0ac44769", + "licenses/dependencies/serde-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/sha1_smol-1.0.1/LICENSE": "282a21b0710441c364025461a447362daf18f5798a7b72ae2f801a2aa536da51", + "licenses/dependencies/shlex-2.0.1/LICENSE-APACHE": "553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583", + "licenses/dependencies/shlex-2.0.1/LICENSE-MIT": "4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1", + "licenses/dependencies/skrifa-0.37.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/skrifa-0.37.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/skrifa-0.44.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/skrifa-0.44.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/slab-0.4.12/LICENSE": "8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18", + "licenses/dependencies/slotmap-1.1.1/LICENSE": "6cec81441b2ab2b5090954c1fb5d0bcca81b86487b5849061fa8952d20ef67d4", + "licenses/dependencies/smallvec-1.16.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/smallvec-1.16.0/LICENSE-MIT": "0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9", + "licenses/dependencies/smol_str-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/smol_str-0.2.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/socket2-0.6.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/socket2-0.6.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/softbuffer-0.4.8/LICENSE-APACHE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4", + "licenses/dependencies/softbuffer-0.4.8/LICENSE-MIT": "0463bfa47d6d763d8c824333efb0e6d6df3946c13c3b077c78ed9f23ca50d0f2", + "licenses/dependencies/spirv-0.3.0+sdk-1.3.268.0/supplement/gfx-rs-rspirv-e91a5debc10c-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT": "5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7", + "licenses/dependencies/static_assertions-1.1.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/static_assertions-1.1.0/LICENSE-MIT": "ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061", + "licenses/dependencies/strict-num-0.1.1/LICENSE": "3085885678bb161f6c472bbd331f66a2550b555eb76128f7f8247779128199c0", + "licenses/dependencies/subtle-2.6.1/LICENSE": "d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b", + "licenses/dependencies/svg_fmt-0.4.5/supplement/nical-rust_debug-93f414cd572b-LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1", + "licenses/dependencies/swash-0.2.10/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/swash-0.2.10/LICENSE-MIT": "122dadfc2eb4de0f4bafcd9eb4e7502cfe338a7965ebd1d18708cc5050f43f76", + "licenses/dependencies/syn-2.0.119/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/syn-2.0.119/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/syn-3.0.5/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/syn-3.0.5/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/sync_wrapper-1.0.2/LICENSE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/synstructure-0.13.2/LICENSE": "219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59", + "licenses/dependencies/sys-locale-0.3.2/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/sys-locale-0.3.2/LICENSE-MIT": "5cc390ab5e5e6507f467368cbab1297552d64bfd863f4b496c7928508bcfefd8", + "licenses/dependencies/tempfile-3.27.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/tempfile-3.27.0/LICENSE-MIT": "8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36", + "licenses/dependencies/termcolor-1.4.1/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/termcolor-1.4.1/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f", + "licenses/dependencies/termcolor-1.4.1/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/thiserror-impl-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-impl-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-impl-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/tiny-skia-path-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced", + "licenses/dependencies/tiny-skia-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced", + "licenses/dependencies/tinystr-0.8.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md": "4f44572785f35152c1fd2eadf565b7e079c0f300b4324f0af653419f9d76b735", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md": "1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md": "41ace205715d9f19a3214218cc1c01d57c533e02cd0fef7c8e51a49a7fce5ac5", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-MIT.md": "fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/tokio-macros-2.7.2/LICENSE": "0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9", + "licenses/dependencies/tokio-rustls-0.26.5/LICENSE-APACHE": "cc117d90b498b32b11a886f279b359da16a73c3b01efbb2f5cc004b20262334e", + "licenses/dependencies/tokio-rustls-0.26.5/LICENSE-MIT": "e20fa2b8e0a2565f24a792b94b4bf4b6c2b9d36f781d8a9516e218a036e6677a", + "licenses/dependencies/tokio-1.53.1/LICENSE": "253cd04c6714889df2d32f3f64d669179a1c95c76ac43c40882c52eb06bc3552", + "licenses/dependencies/tower-http-0.6.11/LICENSE": "5049cf464977eff4b4fcfa7988d84e74116956a3eb9d5f1d451b3f828f945233", + "licenses/dependencies/tower-layer-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tower-service-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tower-0.5.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tracing-attributes-0.1.31/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-core-0.1.36/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-core-0.1.36/src/spin/LICENSE": "58545fed1565e42d687aecec6897d35c6d37ccb71479a137c0deb2203e125c79", + "licenses/dependencies/tracing-0.1.44/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/try-lock-0.2.5/LICENSE": "c816a0749cdc6bf062a5111c159723de51b2bfac66a1dac2655abd9e6b1583eb", + "licenses/dependencies/ttf-parser-0.25.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/ttf-parser-0.25.1/LICENSE-MIT": "f3c9fe731c701ed77fd5fbaac573872af04dc5869385eb9bd5e3c73c42713814", + "licenses/dependencies/ttf-parser-0.25.1/tests/fonts/colr_1_LICENSE": "58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd", + "licenses/dependencies/unicode-bidi-0.3.18/COPYRIGHT": "edb20b474f6cbd4f4db066b54a9e0f687d0009d309412a63431189b59b8e2a07", + "licenses/dependencies/unicode-bidi-0.3.18/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-bidi-0.3.18/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE": "f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1", + "licenses/dependencies/unicode-linebreak-0.1.5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/unicode-script-0.5.8/LICENSE-APACHE": "7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737", + "licenses/dependencies/unicode-script-0.5.8/LICENSE-MIT": "7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c", + "licenses/dependencies/unicode-segmentation-1.13.3/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d", + "licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/unicode-width-0.2.2/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d", + "licenses/dependencies/unicode-width-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-width-0.2.2/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/untrusted-0.9.0/LICENSE.txt": "7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621", + "licenses/dependencies/url-2.5.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/url-2.5.8/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/utf8_iter-1.0.4/COPYRIGHT": "c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c", + "licenses/dependencies/utf8_iter-1.0.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/utf8_iter-1.0.4/LICENSE-MIT": "3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c", + "licenses/dependencies/uuid-1.26.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/uuid-1.26.0/LICENSE-MIT": "436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d", + "licenses/dependencies/version_check-0.9.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/version_check-0.9.5/LICENSE-MIT": "b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e", + "licenses/dependencies/want-0.3.1/LICENSE": "a65f5d0a945d267751344c95665945b90c030ea107faf5c85d518929886187da", + "licenses/dependencies/web-time-1.1.0/LICENSE-APACHE": "54a744942eb3fa63a74d8d359989ed6962c04f3f10ff20cfa08ff8aa7efbe4e6", + "licenses/dependencies/web-time-1.1.0/LICENSE-MIT": "f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b", + "licenses/dependencies/webpki-roots-1.0.9/LICENSE": "e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8", + "licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-core-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-core-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-hal-27.0.4/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-hal-27.0.4/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-types-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-types-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/winapi-util-0.1.11/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/winapi-util-0.1.11/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14", + "licenses/dependencies/winapi-util-0.1.11/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/window_clipboard-0.5.1/LICENSE": "7faec985f3e9b1c4a1df646bfedc304ba67e409447f7ab7f4f591f68708d85dc", + "licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-core-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-core-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-implement-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-implement-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-interface-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-interface-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-link-0.2.1/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-link-0.2.1/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-result-0.2.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-result-0.2.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-strings-0.1.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-strings-0.1.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.52.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.52.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.59.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.59.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.61.2/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.61.2/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-targets-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-targets-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/winit-0.30.13/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a", + "licenses/dependencies/writeable-0.6.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/xml-rs-0.8.29/LICENSE": "0dc18d924dc0a5f41172a393012843a5eaaef338e795b3645da9cc3b6068220b", + "licenses/dependencies/yazi-0.2.1/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c", + "licenses/dependencies/yazi-0.2.1/LICENSE-MIT": "df62e3ef3f207c91073fedd78b4156a278681d0dd3f942379242c62c6a71a3ec", + "licenses/dependencies/yoke-derive-0.8.2/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/yoke-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zeno-0.3.3/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c", + "licenses/dependencies/zeno-0.3.3/LICENSE-MIT": "34dff8202d63e6df022f4f0ce88dab24f254c35ee0d5958b74dcf74d9eae21cc", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df", + "licenses/dependencies/zerofrom-derive-0.1.7/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerofrom-0.1.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zeroize-1.9.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/zeroize-1.9.0/LICENSE-MIT": "8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b", + "licenses/dependencies/zerotrie-0.2.5/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerovec-derive-0.11.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerovec-0.11.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zmij-1.0.23/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/rust/COPYRIGHT.html": "5b0c93fc4e6d4b072eaa521b1762d1e746f4c368f65e81a0e5308e2772dac85e", + "licenses/rust/COPYRIGHT-library.html": "68129500b616d5838629e68f55ff3aed5e096dacf60ce9eb41bbe599a563afa6", + "licenses/rust/COPYING3": "8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903", + "licenses/rust/COPYING.RUNTIME": "28e85c5aa4af9b4f1dfe6b4817aa3eefb3eaaee7fd735045016f29ccf50276a1", + "licenses/llvm-libunwind/llvm-ea7d852a70e8-libunwind-LICENSE.TXT": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d" + } +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/restart.stderr.log b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/restart.stderr.log new file mode 100644 index 00000000..5cbc9cb3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/restart.stderr.log @@ -0,0 +1 @@ +arcadia-server 0.2.0 listening on 127.0.0.1:54753; data C:\ar-compact-01a0d717\.local\package39\server-smoke-unicode02\store diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/restart.stdout.log b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/restart.stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/result.json b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/result.json new file mode 100644 index 00000000..f953611c --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/result.json @@ -0,0 +1,104 @@ +{ + "status": "PASS", + "source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "checks": [ + "Fresh extracted archive identity independently rechecked", + "Exact released server bytes retained", + "Exact new desktop runtime pairing selected", + "version succeeds with sanitized system-only PATH", + "help succeeds with sanitized system-only PATH", + "Fresh isolated store does not preexist", + "first readiness 200", + "Served OpenAPI 200", + "Served OpenAPI exactly matches packaged JSON contract", + "Full authored source import 201", + "Imported envelope GET preserves exact initial ETag", + "Import preserves exact entry, CRLF text, comment and stable IDs", + "Model stable ID distinct from allocated resource ID", + "Source-project GET exact complete authored bundle", + "Conditional edit commits one changed revision", + "New ETag and exact edited authored bundle returned", + "Stale If-Match refused with 412 revision_conflict", + "Stale refusal preserves exact edited model/source pair", + "Acknowledged envelope exactly equals committed isolated store", + "restart readiness 200", + "Restart exact envelope, stable IDs, revision, ETag, comment and CRLF persistence", + "Restart complete source-project exact readback", + "Restart and read leave committed envelope bytes unchanged" + ], + "processes": [ + { + "label": "first", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--bind", + "127.0.0.1:54753", + "--data-dir", + "C:\\ar-compact-01a0d717\\.local\\package39\\server-smoke-unicode02\\store" + ], + "pid": 10064, + "termination": "Windows TerminateProcess after acknowledged requests (not graceful shutdown claim)", + "exit": 1 + }, + { + "label": "restart", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--bind", + "127.0.0.1:54753", + "--data-dir", + "C:\\ar-compact-01a0d717\\.local\\package39\\server-smoke-unicode02\\store" + ], + "pid": 5324, + "termination": "Windows TerminateProcess after acknowledged requests (not graceful shutdown claim)", + "exit": 1 + } + ], + "identity": { + "executable": "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "exe_sha256": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237", + "archive": "C:\\ar-compact-01a0d717\\.local\\package39\\dist\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip", + "archive_sha256": "18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2", + "platform": "Windows-11-10.0.26200-SP0", + "python_harness": "C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\python\\python.exe", + "child_environment": { + "SystemRoot": "C:\\Windows", + "WINDIR": "C:\\Windows", + "TEMP": "C:\\Temp", + "TMP": "C:\\Temp", + "USERPROFILE": "C:\\Users\\User", + "LOCALAPPDATA": "C:\\Users\\User\\AppData\\Local", + "APPDATA": "C:\\Users\\User\\AppData\\Roaming", + "COMSPEC": "C:\\Windows\\system32\\cmd.exe", + "OS": "Windows_NT", + "PROCESSOR_ARCHITECTURE": "AMD64", + "PATH": "C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem" + }, + "packaged_dlls": [ + { + "name": "libunwind.dll", + "sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4" + } + ] + }, + "version": { + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--version" + ], + "exit": 0 + }, + "help": { + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--help" + ], + "exit": 0 + }, + "bind": "127.0.0.1:54753", + "resource_id": "53a28b61-1736-4bc4-8553-28995488647f", + "revision": 2, + "etag_initial": "\"p-53a28b61-1736-4bc4-8553-28995488647f-r1\"", + "etag_final": "\"p-53a28b61-1736-4bc4-8553-28995488647f-r2\"", + "store_sha256": "f615fd9d08ed4e0bb4f2b7b13fa52095959e34c73ac3498487a8544d23eb13fb" +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/run.py b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/run.py new file mode 100644 index 00000000..9ca0e37f --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/run.py @@ -0,0 +1,115 @@ +"""Fresh package server/runtime pairing check; prior smoke logic retained.""" +import copy, hashlib, http.client, json, os, pathlib, platform, socket, subprocess, sys, time, traceback +ROOT=pathlib.Path(__file__).resolve().parent +QA=ROOT.parent +result={'status':'RUNNING','source':'715036e132677dd2bc2fb37ed316d93dc9987aec','checks':[],'processes':[]} +def dump(name,obj): (ROOT/name).write_text(json.dumps(obj,indent=2,ensure_ascii=False),encoding='utf-8') +def check(value,why): + if not value: raise AssertionError(why) + result['checks'].append(why) +def sha(p): return hashlib.sha256(p.read_bytes()).hexdigest() +record=json.loads((QA/'extraction-check.json').read_text()) +PIN=record['archive_sha256'] +archive=QA/'dist'/record['archive'] +check(sha(archive)==PIN,'Fresh extracted archive identity independently rechecked') +exe=pathlib.Path(record['bundle'])/'arcadia-server.exe' +check(sha(exe)=='6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237','Exact released server bytes retained') +check(sha(exe.parent/'libunwind.dll')=='f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4','Exact new desktop runtime pairing selected') +package=json.loads((exe.parent/'package.json').read_text(encoding='utf-8-sig')) +dump('package-provenance.json',package) +win=os.environ.get('SystemRoot',r'C:\Windows') +env={key:os.environ[key] for key in ['SystemRoot','WINDIR','TEMP','TMP','USERPROFILE','LOCALAPPDATA','APPDATA','COMSPEC','OS','PROCESSOR_ARCHITECTURE'] if key in os.environ} +env['PATH']=win+'\\System32;'+win+';'+win+'\\System32\\Wbem' +result['identity']={'executable':str(exe),'exe_sha256':sha(exe),'archive':str(archive),'archive_sha256':PIN,'platform':platform.platform(),'python_harness':sys.executable,'child_environment':env,'packaged_dlls':[{ 'name':p.name,'sha256':sha(p)} for p in exe.parent.glob('*.dll')]} +flags=subprocess.CREATE_NO_WINDOW +for arg in ['--version','--help']: + command=[str(exe),arg] + completed=subprocess.run(command,cwd=ROOT,env=env,stdout=subprocess.PIPE,stderr=subprocess.PIPE,creationflags=flags,timeout=15) + label=arg[2:];(ROOT/(label+'.stdout.txt')).write_bytes(completed.stdout);(ROOT/(label+'.stderr.txt')).write_bytes(completed.stderr) + result[label]={'command':command,'exit':completed.returncode} + check(completed.returncode==0,label+' succeeds with sanitized system-only PATH') +store=ROOT/'store' +check(not store.exists(),'Fresh isolated store does not preexist') +store.mkdir() +with socket.socket() as reserved: + reserved.bind(('127.0.0.1',0));port=reserved.getsockname()[1] +result['bind']=f'127.0.0.1:{port}' +process=None;counter=0;streams=[] +def request(method,path,body=None,headers=None): + global counter + counter+=1; prefix=f'{counter:02d}' + raw=b'' if body is None else json.dumps(body,ensure_ascii=False,separators=(',',':')).encode('utf-8') + hdr={'Host':f'127.0.0.1:{port}','Connection':'close'} + if body is not None: hdr.update({'Content-Type':'application/json','Content-Length':str(len(raw))}) + hdr.update(headers or {}) + (ROOT/(prefix+'.request.http')).write_bytes((method+' '+path+' HTTP/1.1\r\n'+''.join(k+': '+v+'\r\n' for k,v in hdr.items())+'\r\n').encode()+raw) + conn=http.client.HTTPConnection('127.0.0.1',port,timeout=10) + conn.request(method,path,body=raw if body is not None else None,headers=hdr) + response=conn.getresponse();data=response.read();pairs=response.getheaders();status=response.status + (ROOT/(prefix+'.response.http')).write_bytes((f'HTTP/1.1 {status} {response.reason}\r\n'+''.join(k+': '+v+'\r\n' for k,v in pairs)+'\r\n').encode()+data) + conn.close() + return status,dict((k.lower(),v) for k,v in pairs),json.loads(data) if data else None + +def start(label): + global process + command=[str(exe),'--bind',f'127.0.0.1:{port}','--data-dir',str(store)] + out=open(ROOT/(label+'.stdout.log'),'wb');err=open(ROOT/(label+'.stderr.log'),'wb');streams.extend([out,err]) + process=subprocess.Popen(command,cwd=ROOT,env=env,stdout=out,stderr=err,creationflags=flags) + result['processes'].append({'label':label,'command':command,'pid':process.pid}) + for _ in range(100): + if process.poll() is not None: raise RuntimeError('Server exited during startup: '+str(process.returncode)) + try: + with socket.create_connection(('127.0.0.1',port),timeout=.1): break + except OSError: time.sleep(.1) + status,_,_=request('GET','/health/ready');check(status==200,label+' readiness 200') +def stop(label): + global process + if process is not None: + process.terminate();code=process.wait(timeout=15) + result['processes'][-1].update({'termination':'Windows TerminateProcess after acknowledged requests (not graceful shutdown claim)','exit':code}) + process=None + for stream in streams: stream.flush() +try: + start('first') + status,_,api=request('GET','/api/v1/openapi.json');check(status==200,'Served OpenAPI 200') + packaged_api=json.loads((exe.parent/'docs/openapi.json').read_text(encoding='utf-8-sig')) + check(api==packaged_api,'Served OpenAPI exactly matches packaged JSON contract') + source='arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa "Package QA original" id "93200000-0000-4000-8000-000000000001" {\r\n oa_activity inspect_package "Inspect package" id "93200000-0000-4000-8000-000000000002" {}\r\n}\r\n' + bundle={'entry':'model.arcadia','files':{'model.arcadia':source}} + (ROOT/'original.arcadia').write_bytes(source.encode('utf-8')) + status,headers,created=request('POST','/api/v1/projects/import-source-project',bundle) + check(status==201,'Full authored source import 201');resource=created['resource_id'];etag1=headers['etag'];result['resource_id']=resource + path='/api/v1/projects/'+resource + status,headers,original=request('GET',path);check(status==200 and headers['etag']==etag1,'Imported envelope GET preserves exact initial ETag') + check(original['source_project']==bundle,'Import preserves exact entry, CRLF text, comment and stable IDs') + check(original['model']['id']=='93200000-0000-4000-8000-000000000001' and resource!=original['model']['id'],'Model stable ID distinct from allocated resource ID') + status,headers,read=request('GET',path+'/source-project');check(status==200 and read==bundle and headers['etag']==etag1,'Source-project GET exact complete authored bundle') + edited=copy.deepcopy(bundle);edited['files']['model.arcadia']=source.replace('Package QA original','Package QA edited') + (ROOT/'edited.arcadia').write_bytes(edited['files']['model.arcadia'].encode('utf-8')) + status,headers,mutation=request('PUT',path+'/source-project',edited,{'If-Match':etag1}) + check(status==200 and mutation['changed'] is True and mutation['revision']==original['revision']+1,'Conditional edit commits one changed revision') + etag2=headers['etag'];check(etag2!=etag1 and mutation['source_project']==edited,'New ETag and exact edited authored bundle returned') + stale=copy.deepcopy(bundle);stale['files']['model.arcadia']=source.replace('Package QA original','STALE MUST NOT PERSIST') + status,_,problem=request('PUT',path+'/source-project',stale,{'If-Match':etag1}) + check(status==412 and problem['code']=='revision_conflict','Stale If-Match refused with 412 revision_conflict') + status,headers,accepted=request('GET',path) + expected_model=copy.deepcopy(original['model']);expected_model['name']='Package QA edited' + check(status==200 and headers['etag']==etag2 and accepted['source_project']==edited and accepted['model']==expected_model,'Stale refusal preserves exact edited model/source pair') + stored=store/(resource+'.json');persisted=stored.read_bytes();dump('accepted-envelope.json',accepted) + check(json.loads(persisted)==accepted,'Acknowledged envelope exactly equals committed isolated store') + stop('first') + start('restart') + status,headers,reopened=request('GET',path) + check(status==200 and headers['etag']==etag2 and reopened==accepted,'Restart exact envelope, stable IDs, revision, ETag, comment and CRLF persistence') + status,headers,reopened_source=request('GET',path+'/source-project') + check(status==200 and reopened_source==edited and headers['etag']==etag2,'Restart complete source-project exact readback') + check(stored.read_bytes()==persisted,'Restart and read leave committed envelope bytes unchanged') + result['revision']=accepted['revision'];result['etag_initial']=etag1;result['etag_final']=etag2;result['store_sha256']=hashlib.sha256(persisted).hexdigest();result['status']='PASS' +except Exception: + result['status']='FAIL';result['error']=traceback.format_exc() +finally: + stop('final') + for stream in streams: stream.close() + dump('result.json',result) +print(json.dumps({'status':result['status'],'checks':len(result['checks']),'error':result.get('error')},indent=2)) +sys.exit(0 if result['status']=='PASS' else 1) diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/version.stderr.txt b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/version.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/version.stdout.txt b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/version.stdout.txt new file mode 100644 index 00000000..c4c85711 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke-unicode02/version.stdout.txt @@ -0,0 +1 @@ +arcadia-server 0.2.0 diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/01.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/01.request.http new file mode 100644 index 00000000..9e5ad24a --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/01.request.http @@ -0,0 +1,4 @@ +GET /health/ready HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/01.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/01.response.http new file mode 100644 index 00000000..71836798 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/01.response.http @@ -0,0 +1,9 @@ +HTTP/1.1 200 OK +content-type: application/json +x-request-id: fb219e23-015a-4ea7-b8c6-062958269379 +cache-control: no-cache +content-length: 15 +connection: close +date: Fri, 02 Oct 2026 00:53:33 GMT + +{"status":"ok"} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/02.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/02.request.http new file mode 100644 index 00000000..eeb1fbe2 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/02.request.http @@ -0,0 +1,4 @@ +GET /api/v1/openapi.json HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/02.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/02.response.http new file mode 100644 index 00000000..d8bf5453 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/02.response.http @@ -0,0 +1,12889 @@ +HTTP/1.1 200 OK +content-type: application/json +x-request-id: c51a6049-77e2-4482-8eca-f6d47bc1b62c +cache-control: no-cache +content-length: 348802 +connection: close +date: Fri, 02 Oct 2026 00:53:33 GMT + +{ + "openapi": "3.1.0", + "info": { + "title": "Arcadia Studio model API", + "version": "1.0.0", + "description": "Current schema-7 snapshots and conditional atomic writes. Request body limit: 8 MiB; at most 200 nested commands; no retained revisions, request receipts, automatic retries or persistent transition plans. See docs/api.rst. Fixed store capacity: 128 models / 256 MiB serialized envelopes. Stateless transition preview/apply. Artifact URI/revision strings remain opaque core fields. Model admission before structural validation: 5,000 graph objects, 20,000 total records and 50,000 ordered references. Preparation uses snapshots outside the catalog lock; final commits recheck the exact ETag. Each accepted envelope couples model and authored source under one revision. Source-only edits advance the shared ETag. Source bundles resolve logical paths only, preserve authored files/comments, and have a stabilized JSON cap of 8 MiB, 256 files, 32 include edges along a path and 1,024 include edges overall." + }, + "servers": [ + { + "url": "http://127.0.0.1:8787" + } + ], + "security": [ + { + "bearerAuth": [] + } + ], + "paths": { + "/health": { + "get": { + "operationId": "_health", + "summary": "Store was opened and HTTP service is responding", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "const": "ok" + } + }, + "required": [ + "status" + ], + "additionalProperties": false + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/health/live": { + "get": { + "operationId": "_health_live", + "summary": "Store was opened and HTTP service is responding", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "const": "ok" + } + }, + "required": [ + "status" + ], + "additionalProperties": false + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/health/ready": { + "get": { + "operationId": "_health_ready", + "summary": "Store was opened and HTTP service is responding", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "const": "ok" + } + }, + "required": [ + "status" + ], + "additionalProperties": false + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/openapi.json": { + "get": { + "operationId": "_openapi_json", + "summary": "OpenAPI contract", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/api/v1/openapi.json": { + "get": { + "operationId": "_api_v1_openapi_json", + "summary": "OpenAPI contract", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "security": [] + } + }, + "/api/v1/projects": { + "get": { + "operationId": "listProjects", + "summary": "List current hosted projects in UUID order", + "parameters": [ + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "q", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectPage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + }, + "post": { + "operationId": "createProject", + "summary": "Create and persist an empty model", + "parameters": [], + "responses": { + "201": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectSummary" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NameRequest" + } + } + } + } + } + }, + "/api/v1/projects/import": { + "post": { + "operationId": "importProject", + "summary": "Import JSON or UTF-8 Arcadia source as a new hosted resource", + "parameters": [], + "responses": { + "201": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectSummary" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + }, + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "description": "Schema-7 native JSON is described below. Schema-1/2/3/4/5/6 JSON and source are accepted through explicit frozen readers and migration, also on replacement and candidate validation. Earlier versions reject later constructors, fields and semantic facets, including explicit null. Prior prose and typed reviews remain intact; absent semantic review stays Unreviewed. Export emits schema 7 / arcadia 7. See docs/language.rst." + } + }, + "/api/v1/projects/{id}": { + "get": { + "operationId": "getProject", + "summary": "Get complete current envelope", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Return 304 when the current representation's revision matches.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StoredProject" + } + } + } + }, + "304": { + "description": "Unchanged; empty body." + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + }, + "patch": { + "operationId": "renameProject", + "summary": "Rename the project atomically", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NameRequest" + } + } + } + } + }, + "delete": { + "operationId": "deleteProject", + "summary": "Permanently delete the current hosted envelope", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/model": { + "get": { + "operationId": "getModel", + "summary": "Export native model JSON", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Return 304 when the current representation's revision matches.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "304": { + "description": "Unchanged; empty body." + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + }, + "put": { + "operationId": "replaceModel", + "summary": "Conditionally replace model JSON", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "description": "Replace semantics while preserving the accepted authored source layout and comments, using common UUIDs as identity correspondence. Model and source commit together. Use source-project PUT to replace authored files." + } + }, + "/api/v1/projects/{id}/source": { + "get": { + "operationId": "getSource", + "summary": "Export canonical Arcadia source", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Return 304 when the current representation's revision matches.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "304": { + "description": "Unchanged; empty body." + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "description": "Canonical single-file interchange view of the current model. Use source-project GET to export exact authored files and comments." + }, + "put": { + "operationId": "replaceSource", + "summary": "Conditionally replace from UTF-8 Arcadia source", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "description": "Replace semantics from canonical single-file interchange while preserving the existing authored source bundle using common UUIDs. Submitted formatting/comments do not replace the authored workspace. Use source-project PUT for that purpose." + } + }, + "/api/v1/projects/{id}/elements": { + "get": { + "operationId": "listElements", + "summary": "Filter current elements; AND semantics", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "revision", + "in": "query", + "required": false, + "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", + "schema": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + { + "name": "kind", + "in": "query", + "required": false, + "description": "", + "schema": { + "$ref": "#/components/schemas/Kind" + } + }, + { + "name": "layer", + "in": "query", + "required": false, + "description": "", + "schema": { + "$ref": "#/components/schemas/Layer" + } + }, + { + "name": "alias", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "q", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ElementPage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/relations": { + "get": { + "operationId": "listRelations", + "summary": "Filter relations by typed kind and endpoints", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "revision", + "in": "query", + "required": false, + "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", + "schema": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + { + "name": "kind", + "in": "query", + "required": false, + "description": "", + "schema": { + "$ref": "#/components/schemas/RelationKind" + } + }, + { + "name": "source", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "target", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "incident_to", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelationPage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/artifact-links": { + "get": { + "operationId": "listArtifacts", + "summary": "List model artifact links without fetching URIs", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "revision", + "in": "query", + "required": false, + "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", + "schema": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + { + "name": "object", + "in": "query", + "required": false, + "description": "Owner ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/traces": { + "get": { + "operationId": "listTraces", + "summary": "List OA/SA traces", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "revision", + "in": "query", + "required": false, + "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", + "schema": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + { + "name": "object", + "in": "query", + "required": false, + "description": "OA or SA endpoint ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TracePage" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + } + }, + "/api/v1/projects/{id}/query": { + "post": { + "operationId": "queryNeighborhood", + "summary": "Bounded graph neighborhood including relation endpoint closure", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NeighborhoodResult" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NeighborhoodRequest" + } + } + } + } + } + }, + "/api/v1/projects/{id}/validation": { + "get": { + "operationId": "validateCurrent", + "summary": "Shared core validation of current snapshot", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationResult" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + } + }, + "post": { + "operationId": "validateCandidate", + "summary": "Check submitted model/source without mutation", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationResult" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationRequest" + } + } + } + }, + "description": "Validate native model JSON, canonical Arcadia source, or a complete source-project bundle without adoption. Source-project diagnostics refer to submitted file paths and positions. Stabilized source/model byte limits are also checked." + } + }, + "/api/v1/projects/{id}/transactions": { + "post": { + "operationId": "executeTransaction", + "summary": "Atomic shared typed commands; optional dry run", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionRequest" + } + } + } + }, + "description": "Command identity correspondence drives source writeback, including UUID swaps and delete/recreate operations even when final models compare equal. Dry runs return both proposed representations and validate writeback. Failure preserves the accepted pair." + } + }, + "/api/v1/projects/{id}/transitions/preview": { + "post": { + "operationId": "previewTransition", + "summary": "Preview a shared core transition without persisting a plan", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransitionEnvelope" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransitionRequest" + } + } + } + }, + "description": "Conflict-free previews also validate authored-source writeback and stabilized model/source capacities." + } + }, + "/api/v1/projects/{id}/transitions/apply": { + "post": { + "operationId": "applyTransition", + "summary": "Apply client-held transition plan against its original revision", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransitionEnvelope" + } + } + } + } + } + }, + "/api/v1/projects/import-source-project": { + "post": { + "operationId": "importSourceProject", + "summary": "Import an authored source bundle as a new hosted resource", + "parameters": [], + "responses": { + "201": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + }, + "Location": { + "schema": { + "type": "string" + }, + "description": "Path to the created hosted resource." + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectSummary" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SourceBundle" + } + } + } + }, + "description": "Compile all logical source files, stabilize missing IDs, and persist the accepted model and bundle together. Importing source3 bundles never reads the service filesystem. Export the accepted bundle after import to retain inserted IDs." + } + }, + "/api/v1/projects/{id}/source-project": { + "get": { + "operationId": "getSourceProject", + "summary": "Export the exact accepted authored source bundle", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Return 304 when the current representation's revision matches.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SourceBundle" + } + } + } + }, + "304": { + "description": "Unchanged; empty body." + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "description": "Returns entry and all files with stable IDs, original comments, line endings and module layout. Shares the model ETag; comment-only changes advance that revision." + }, + "put": { + "operationId": "replaceSourceProject", + "summary": "Conditionally replace the complete authored source bundle", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "schema": { + "type": "string" + }, + "description": "Project revision validator when scoped to a project." + }, + "X-Request-ID": { + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SourceProjectMutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SourceBundle" + } + } + } + }, + "description": "Compile and validate the full submitted bundle; return accepted text with missing UUIDs inserted. Model and source persist together under the exact If-Match precondition. Comment-only or file-layout edits advance revision; an exact pair no-op retains it. Rejected candidates preserve both representations." + } + }, + "/api/v1/projects/{id}/semantic-transitions/query": { + "post": { + "operationId": "querySemanticTransition", + "summary": "Query typed trace drift and linked impacts without mutation", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticQueryResult" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Problem" + }, + "409": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticQueryRequest" + } + } + } + }, + "description": "Read one immutable snapshot. Optional revision mismatch returns409; missing trace returns404; duplicate/empty trace selection returns400. References are canonical OA-to-SA correspondence. No write, baseline refresh or external artifact fetch." + } + }, + "/api/v1/projects/{id}/semantic-transitions/preview": { + "post": { + "operationId": "previewSemanticTransition", + "summary": "Preview and source-validate a typed semantic transition without writing", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticTransitionEnvelope" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticTransitionRequest" + } + } + } + }, + "description": "Uses the frozen core typed semantic contract. A supplied plan is a client-owned candidate, not a signed receipt; fingerprints check consistency, not original review authorship. Preview validates source writeback when conflict-free. Apply preserves preview-generated IDs and does not replan random identities." + } + }, + "/api/v1/projects/{id}/semantic-transitions/apply": { + "post": { + "operationId": "applySemanticTransition", + "summary": "Conditionally apply a prepared semantic candidate in one model/source revision", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Hosted resource UUID; distinct from editable model ID.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "If-Match", + "in": "header", + "required": true, + "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Validated result; preview may include unresolved conflicts.", + "headers": { + "ETag": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MutationResult" + } + } + } + }, + "412": { + "$ref": "#/components/responses/Problem" + }, + "428": { + "$ref": "#/components/responses/Problem" + }, + "default": { + "$ref": "#/components/responses/Problem" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticTransitionEnvelope" + } + } + } + }, + "description": "Uses the frozen core typed semantic contract. A supplied plan is a client-owned candidate, not a signed receipt; fingerprints check consistency, not original review authorship. Preview validates source writeback when conflict-free. Apply preserves preview-generated IDs and does not replan random identities." + } + } + }, + "components": { + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer", + "description": "Optional for unconfigured loopback; required on non-loopback." + } + }, + "responses": { + "Problem": { + "description": "Structured problem response. See code/detail and docs/api.rst status mapping.", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "schemas": { + "Id": { + "type": "string", + "format": "uuid" + }, + "Revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "Layer": { + "type": "string", + "enum": [ + "Oa", + "Sa" + ] + }, + "Kind": { + "type": "string", + "enum": [ + "Entity", + "Actor", + "Role", + "Activity", + "Capability", + "OperationalMission", + "Process", + "System", + "SystemActor", + "Function", + "SystemCapability", + "Mission", + "FunctionalChain", + "ExchangeItem", + "ExchangeCategory", + "DataType", + "DataField", + "Interface", + "Port", + "Scenario", + "Lifeline", + "Occurrence", + "StateMachine", + "Region", + "State", + "Mode", + "Initial", + "Final", + "Choice", + "Junction", + "Fork", + "Join", + "ShallowHistory", + "DeepHistory", + "EntryPoint", + "ExitPoint", + "Terminate", + "Event", + "Constraint" + ] + }, + "RelationKind": { + "type": "string", + "enum": [ + "InterfaceItemAllocation", + "DataAssociation", + "Allocation", + "PortAllocation", + "Interaction", + "CapabilityInvolvement", + "ChainInvolvement", + "RoleRealization", + "RoleAssignment", + "FunctionalExchange", + "BoundaryExchange", + "CommunicationMean", + "MissionCapability", + "CapabilityInclude", + "CapabilityExtend", + "CapabilityGeneralization", + "MissionInvolvement", + "SequenceLink", + "ContextualLink", + "StateTransition", + "Availability", + "ExchangeAllocation", + "InterfaceProvision", + "InterfaceRequirement", + "StateAction" + ] + }, + "Position": { + "type": "object", + "properties": { + "x": { + "type": "number", + "minimum": -1000000, + "maximum": 1000000 + }, + "y": { + "type": "number", + "minimum": -1000000, + "maximum": 1000000 + } + }, + "required": [ + "x", + "y" + ], + "additionalProperties": false + }, + "EdgeLabel": { + "type": "object", + "description": "Authored label placement relative to the computed polyline. Both fields are required.", + "properties": { + "fraction": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "Fraction of source-to-target polyline arc length." + }, + "offset": { + "$ref": "#/components/schemas/Position", + "description": "Relative diagram-space displacement." + } + }, + "required": [ + "fraction", + "offset" + ], + "additionalProperties": false + }, + "EdgeAttachment": { + "type": "object", + "description": "Per-view preference on one stored connection end, not a semantic endpoint. Offset is finite and measured along the complete projected bounding-box side. Real semantic ports take precedence; hidden/promoted geometry retains the preference. Reconnect preserves the preference on its source/target slot.", + "properties": { + "side": { + "$ref": "#/components/schemas/PortAnchorSide" + }, + "offset": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "Left/Right: top-to-bottom fraction. Top/Bottom: left-to-right fraction. Shape-aware geometry derives the actual contour point." + } + }, + "required": [ + "side", + "offset" + ], + "additionalProperties": false + }, + "EdgeRoute": { + "type": "object", + "description": "One diagram's authored presentation for an existing Relation or Trace, including currently hidden edges. No separate identity. Stores optional endpoint preferences, pinned points and label placement; explicit empty routes are retained. Removing the route resets all authored presentation.", + "properties": { + "edge": { + "type": "string", + "format": "uuid", + "description": "Existing Relation or Trace identity, never a node placement." + }, + "source_attachment": { + "oneOf": [ + { + "$ref": "#/components/schemas/EdgeAttachment" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Absent or null means automatic. Omitted when serializing automatic presentation. Resetting this field preserves the other end, pins and label." + }, + "target_attachment": { + "oneOf": [ + { + "$ref": "#/components/schemas/EdgeAttachment" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Absent or null means automatic. Omitted when serializing automatic presentation. Resetting this field preserves the other end, pins and label." + }, + "waypoints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Position" + }, + "maxItems": 128, + "default": [], + "description": "Absolute diagram positions in traversal order." + }, + "label": { + "oneOf": [ + { + "$ref": "#/components/schemas/EdgeLabel" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "edge" + ], + "additionalProperties": false + }, + "Size": { + "type": "object", + "properties": { + "width": { + "type": "number", + "exclusiveMinimum": 0 + }, + "height": { + "type": "number", + "exclusiveMinimum": 0 + } + }, + "required": [ + "width", + "height" + ], + "additionalProperties": false + }, + "DataTypeDefinition": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Boolean" + ] + }, + { + "type": "object", + "properties": { + "Integer": { + "type": "object", + "properties": { + "minimum": { + "anyOf": [ + { + "type": "integer", + "format": "int64", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + { + "type": "null" + } + ] + }, + "maximum": { + "anyOf": [ + { + "type": "integer", + "format": "int64", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "minimum", + "maximum" + ], + "additionalProperties": false + } + }, + "required": [ + "Integer" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Real": { + "type": "object", + "properties": { + "minimum": { + "anyOf": [ + { + "type": "number", + "format": "double", + "description": "Finite IEEE-754 binary64; no coercion from typed Integer values." + }, + { + "type": "null" + } + ] + }, + "maximum": { + "anyOf": [ + { + "type": "number", + "format": "double", + "description": "Finite IEEE-754 binary64; no coercion from typed Integer values." + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "minimum", + "maximum" + ], + "additionalProperties": false + } + }, + "required": [ + "Real" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "String": { + "type": "object", + "properties": { + "minimum_length": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "maximum_length": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "minimum_length", + "maximum_length" + ], + "additionalProperties": false + } + }, + "required": [ + "String" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Enumeration": { + "type": "object", + "properties": { + "literals": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "literals" + ], + "additionalProperties": false + } + }, + "required": [ + "Enumeration" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Record": { + "type": "object", + "properties": { + "supertype": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "supertype" + ], + "additionalProperties": false + } + }, + "required": [ + "Record" + ], + "additionalProperties": false + } + ] + }, + "TypeRef": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Boolean", + "Integer", + "Real", + "String" + ] + }, + { + "oneOf": [ + { + "type": "object", + "properties": { + "Named": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "Named" + ], + "additionalProperties": false + } + ] + } + ] + }, + "OccurrenceBody": { + "oneOf": [ + { + "type": "object", + "properties": { + "Exchange": { + "type": "object", + "properties": { + "exchange": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "sender": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "receiver": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "message_kind": { + "$ref": "#/components/schemas/MessageKind", + "default": "Asynchronous" + }, + "reply_to": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ], + "default": null + }, + "values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageValue" + }, + "default": [] + }, + "operation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OperationUse" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "exchange", + "sender", + "receiver" + ], + "additionalProperties": false, + "description": "Absent/null operation retains ordinary channel semantics and is omitted on output. Present operation is allowed only on SA BoundaryInterface Call/Asynchronous messages. Reply stores no operation and derives its exact Call's selection. Existing message defaults remain unchanged." + } + }, + "required": [ + "Exchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Action": { + "type": "object", + "properties": { + "action": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "lifeline": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "action", + "lifeline" + ], + "additionalProperties": false + } + }, + "required": [ + "Action" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "type": "object", + "properties": { + "state": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "lifeline": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "state", + "lifeline" + ], + "additionalProperties": false + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Fragment": { + "type": "object", + "properties": { + "operator": { + "type": "string", + "enum": [ + "Alternative", + "Parallel", + "Loop", + "Optional" + ] + }, + "branches": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "operator", + "branches" + ], + "additionalProperties": false + } + }, + "required": [ + "Fragment" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Branch": { + "type": "object", + "properties": { + "guard": { + "type": "string" + }, + "occurrences": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "guard", + "occurrences" + ], + "additionalProperties": false + } + }, + "required": [ + "Branch" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Control": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/ControlKind" + } + }, + "required": [ + "kind" + ], + "additionalProperties": false + } + }, + "required": [ + "Control" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SequenceReference": { + "type": "object", + "properties": { + "sequence": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "sequence" + ], + "additionalProperties": false + } + }, + "required": [ + "SequenceReference" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ScenarioUse": { + "type": "object", + "properties": { + "scenario": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "bindings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LifelineBinding" + } + } + }, + "required": [ + "scenario", + "bindings" + ], + "additionalProperties": false + } + }, + "required": [ + "ScenarioUse" + ], + "additionalProperties": false + } + ] + }, + "SharedBody": { + "oneOf": [ + { + "type": "string", + "enum": [ + "StateMachine", + "Region" + ] + }, + { + "oneOf": [ + { + "type": "object", + "properties": { + "ExchangeItem": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/ExchangeItemKind" + }, + "mechanism": { + "$ref": "#/components/schemas/ExchangeMechanism" + }, + "supertype": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "kind", + "mechanism", + "supertype" + ], + "additionalProperties": false + } + }, + "required": [ + "ExchangeItem" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DataType": { + "type": "object", + "properties": { + "definition": { + "$ref": "#/components/schemas/DataTypeDefinition" + }, + "default": { + "anyOf": [ + { + "$ref": "#/components/schemas/DataValue" + }, + { + "type": "null" + } + ] + }, + "unit": { + "type": "string" + } + }, + "required": [ + "definition", + "default", + "unit" + ], + "additionalProperties": false + } + }, + "required": [ + "DataType" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DataField": { + "type": "object", + "properties": { + "type_ref": { + "$ref": "#/components/schemas/TypeRef" + }, + "minimum": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "maximum": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + }, + "unit": { + "type": "string" + }, + "direction": { + "$ref": "#/components/schemas/ParameterDirection" + }, + "storage": { + "$ref": "#/components/schemas/FieldStorage" + }, + "default": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataValue" + } + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "type_ref", + "minimum", + "maximum", + "unit", + "direction", + "storage", + "default" + ], + "additionalProperties": false + } + }, + "required": [ + "DataField" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Interface": { + "type": "object", + "properties": { + "supertype": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "supertype" + ], + "additionalProperties": false + } + }, + "required": [ + "Interface" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Port": { + "type": "object", + "properties": { + "contract": { + "$ref": "#/components/schemas/PortContract" + }, + "legacy": { + "anyOf": [ + { + "$ref": "#/components/schemas/LegacyPortContract" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "contract", + "legacy" + ], + "additionalProperties": false + } + }, + "required": [ + "Port" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Scenario": { + "type": "object", + "properties": { + "context": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "precondition": { + "type": "string" + }, + "postcondition": { + "type": "string" + }, + "steps": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "viewpoint": { + "$ref": "#/components/schemas/ScenarioViewpoint", + "default": "MixedLegacy", + "description": "Omitted schema-2 viewpoint retains legacy mixed lifelines. New graphical factories select OperationalActivity or Functional explicitly." + } + }, + "required": [ + "context", + "precondition", + "postcondition", + "steps" + ], + "additionalProperties": false + } + }, + "required": [ + "Scenario" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Lifeline": { + "type": "object", + "properties": { + "represented": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "represented" + ], + "additionalProperties": false + } + }, + "required": [ + "Lifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Occurrence": { + "type": "object", + "properties": { + "body": { + "$ref": "#/components/schemas/OccurrenceBody" + }, + "precondition": { + "type": "string" + }, + "postcondition": { + "type": "string" + } + }, + "required": [ + "body", + "precondition", + "postcondition" + ], + "additionalProperties": false + } + }, + "required": [ + "Occurrence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/StateKind" + }, + "entry": { + "type": "string" + }, + "exit": { + "type": "string" + }, + "do_activity": { + "type": "string" + } + }, + "required": [ + "kind", + "entry", + "exit", + "do_activity" + ], + "additionalProperties": false + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Constraint": { + "type": "object", + "properties": { + "expression": { + "type": "string" + }, + "constrained": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "expression", + "constrained" + ], + "additionalProperties": false + } + }, + "required": [ + "Constraint" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Event": { + "type": "object", + "properties": { + "body": { + "$ref": "#/components/schemas/EventBody" + } + }, + "required": [ + "body" + ], + "additionalProperties": false + } + }, + "required": [ + "Event" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExchangeCategory": { + "type": "object", + "properties": { + "family": { + "$ref": "#/components/schemas/ExchangeFamily" + }, + "exchanges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "family", + "exchanges" + ], + "additionalProperties": false + } + }, + "required": [ + "ExchangeCategory" + ], + "additionalProperties": false + } + ] + } + ] + }, + "OaBody": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Entity", + "Actor", + "Role", + "Activity", + "Capability", + "Mission" + ] + }, + { + "oneOf": [ + { + "type": "object", + "properties": { + "Process": { + "type": "object", + "properties": { + "steps": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "steps" + ], + "additionalProperties": false + } + }, + "required": [ + "Process" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Shared": { + "$ref": "#/components/schemas/SharedBody" + } + }, + "required": [ + "Shared" + ], + "additionalProperties": false + } + ] + } + ] + }, + "SaBody": { + "oneOf": [ + { + "type": "string", + "enum": [ + "System", + "Actor", + "Function", + "Capability", + "Mission" + ] + }, + { + "oneOf": [ + { + "type": "object", + "properties": { + "FunctionalChain": { + "type": "object", + "properties": { + "steps": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "steps" + ], + "additionalProperties": false + } + }, + "required": [ + "FunctionalChain" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Shared": { + "$ref": "#/components/schemas/SharedBody" + } + }, + "required": [ + "Shared" + ], + "additionalProperties": false + } + ] + } + ] + }, + "ElementBody": { + "oneOf": [ + { + "type": "object", + "properties": { + "Oa": { + "$ref": "#/components/schemas/OaBody" + } + }, + "required": [ + "Oa" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Sa": { + "$ref": "#/components/schemas/SaBody" + } + }, + "required": [ + "Sa" + ], + "additionalProperties": false + } + ] + }, + "Element": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "parent": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + }, + "body": { + "$ref": "#/components/schemas/ElementBody" + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "parent", + "body" + ], + "additionalProperties": false + }, + "RelationBody": { + "oneOf": [ + { + "type": "object", + "properties": { + "Allocation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "Allocation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CapabilityInvolvement": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "CapabilityInvolvement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ChainInvolvement": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "ChainInvolvement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RoleRealization": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "RoleRealization" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RoleAssignment": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "RoleAssignment" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MissionCapability": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "MissionCapability" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Availability": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "Availability" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExchangeAllocation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "ExchangeAllocation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "InterfaceProvision": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "InterfaceProvision" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "InterfaceRequirement": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "InterfaceRequirement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Interaction": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "source", + "target", + "items" + ], + "additionalProperties": false + } + }, + "required": [ + "Interaction" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "BoundaryExchange": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "oriented": { + "type": "boolean", + "description": "Independent of component port kind/orientation. Old V2 exchanges migrate to true." + } + }, + "required": [ + "source", + "target", + "items", + "oriented" + ], + "additionalProperties": false + } + }, + "required": [ + "BoundaryExchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "FunctionalExchange": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "source_port": { + "type": "string", + "format": "uuid" + }, + "target_port": { + "type": "string", + "format": "uuid" + }, + "items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "source", + "target", + "source_port", + "target_port", + "items" + ], + "additionalProperties": false + } + }, + "required": [ + "FunctionalExchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StateTransition": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "trigger": { + "type": "string" + }, + "guard": { + "type": "string" + }, + "effect": { + "type": "string" + }, + "transition_kind": { + "$ref": "#/components/schemas/TransitionKind", + "default": "External", + "description": "Omitted legacy schema-2 value is External." + }, + "triggers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "uniqueItems": true, + "description": "Same-layer Event or Activity/Function references; alternatives, not implicit conjunction.", + "default": [] + }, + "effects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "uniqueItems": true, + "description": "Same-layer Activity/Function references describing transition effects.", + "default": [] + } + }, + "required": [ + "source", + "target", + "trigger", + "guard", + "effect" + ], + "additionalProperties": false, + "description": "Existing trigger, guard and effect prose is preserved exactly. New typed properties are optional only for staged schema-2 compatibility. Removing the last typed trigger retains a descriptive unresolved-trigger placeholder instead of silently introducing completion semantics." + } + }, + "required": [ + "StateTransition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StateAction": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "phase": { + "type": "string", + "enum": [ + "Entry", + "Do", + "Exit" + ] + } + }, + "required": [ + "source", + "target", + "phase" + ], + "additionalProperties": false + } + }, + "required": [ + "StateAction" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CapabilityInclude": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "CapabilityInclude" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CapabilityExtend": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "condition": { + "type": "string", + "description": "Engineering condition under which the extending capability adds behavior." + } + }, + "required": [ + "source", + "target", + "condition" + ], + "additionalProperties": false + } + }, + "required": [ + "CapabilityExtend" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CapabilityGeneralization": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "CapabilityGeneralization" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MissionInvolvement": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "MissionInvolvement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SequenceLink": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "guard": { + "type": "string", + "description": "Condition for a contextual process/chain path. Choice and loop paths should use explicit conditions or else." + } + }, + "required": [ + "source", + "target", + "guard" + ], + "additionalProperties": false + } + }, + "required": [ + "SequenceLink" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "PortAllocation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "source", + "target" + ], + "additionalProperties": false + } + }, + "required": [ + "PortAllocation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "InterfaceItemAllocation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "order": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "transmission": { + "$ref": "#/components/schemas/TransmissionProtocol" + }, + "acquisition": { + "$ref": "#/components/schemas/AcquisitionProtocol" + } + }, + "required": [ + "source", + "target", + "order", + "transmission", + "acquisition" + ], + "additionalProperties": false + } + }, + "required": [ + "InterfaceItemAllocation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DataAssociation": { + "type": "object", + "properties": { + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "source_role": { + "type": "string" + }, + "target_role": { + "type": "string" + }, + "source_minimum": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "source_maximum": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + }, + "target_minimum": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "target_maximum": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + }, + "source_navigable": { + "type": "boolean" + }, + "target_navigable": { + "type": "boolean" + } + }, + "required": [ + "source", + "target", + "source_role", + "target_role", + "source_minimum", + "source_maximum", + "target_minimum", + "target_maximum", + "source_navigable", + "target_navigable" + ], + "additionalProperties": false + } + }, + "required": [ + "DataAssociation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CommunicationMean": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "target": { + "$ref": "#/components/schemas/Id" + }, + "oriented": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "source", + "target", + "oriented", + "items" + ], + "additionalProperties": false + } + }, + "required": [ + "CommunicationMean" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextualLink": { + "type": "object", + "properties": { + "owner": { + "$ref": "#/components/schemas/Id" + }, + "source": { + "$ref": "#/components/schemas/OccurrenceEndpoint" + }, + "target": { + "$ref": "#/components/schemas/OccurrenceEndpoint" + }, + "purpose": { + "$ref": "#/components/schemas/ContextualLinkPurpose" + } + }, + "required": [ + "owner", + "source", + "target", + "purpose" + ], + "additionalProperties": false + } + }, + "required": [ + "ContextualLink" + ], + "additionalProperties": false + } + ] + }, + "Relation": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "body": { + "$ref": "#/components/schemas/RelationBody" + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "body" + ], + "additionalProperties": false + }, + "PortAnchorSide": { + "type": "string", + "enum": [ + "Left", + "Right", + "Top", + "Bottom" + ], + "description": "Presentation side of the owner placement; independent of semantic port direction." + }, + "PortAnchor": { + "type": "object", + "description": "Manual position of a direct child Port on one owner placement. Each port occurs at most once per placement; this record has no separate identity.", + "properties": { + "port": { + "type": "string", + "format": "uuid" + }, + "side": { + "$ref": "#/components/schemas/PortAnchorSide" + }, + "offset": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "Finite binary32 fraction of the complete owner edge, measured from top on Left/Right and from left on Top/Bottom." + } + }, + "required": [ + "port", + "side", + "offset" + ], + "additionalProperties": false + }, + "NodePlacement": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "element": { + "type": "string", + "format": "uuid" + }, + "position": { + "$ref": "#/components/schemas/Position" + }, + "size": { + "$ref": "#/components/schemas/Size" + }, + "collapsed": { + "type": "boolean" + }, + "port_anchors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PortAnchor" + }, + "default": [], + "description": "Per-placement manual port positions. Omitted and empty both select automatic positioning; empty lists are omitted on serialization. Duplicate port references are invalid." + } + }, + "required": [ + "id", + "alias", + "element", + "position", + "size", + "collapsed" + ], + "additionalProperties": false + }, + "ProjectionKind": { + "description": "Existing projections remain strings. StateMachine carries one required UUID reference to an existing StateMachine in the diagram layer (state_diagram_context). Its placements may contain only that machine and its regions/state vertices, including nested members (state_diagram_member). Empty and partial views are valid. Incompatible placements must be removed or relocated in the same transaction when changing context; accepting or reading a view does not synthesize semantic records or placements.", + "oneOf": [ + { + "type": "string", + "enum": [ + "FunctionalDataflow", + "Capabilities", + "Overview", + "Decomposition", + "Allocation", + "Traceability" + ] + }, + { + "type": "object", + "properties": { + "StateMachine": { + "type": "object", + "properties": { + "machine": { + "type": "string", + "format": "uuid", + "description": "Required identity of the same-layer StateMachine that owns this view's members." + } + }, + "required": [ + "machine" + ], + "additionalProperties": false + } + }, + "required": [ + "StateMachine" + ], + "additionalProperties": false + } + ], + "examples": [ + "Overview", + { + "StateMachine": { + "machine": "11111111-1111-4111-8111-111111111111" + } + } + ] + }, + "Diagram": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "layer": { + "$ref": "#/components/schemas/Layer" + }, + "projection": { + "$ref": "#/components/schemas/ProjectionKind" + }, + "nodes": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/NodePlacement" + } + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeRoute" + }, + "default": [], + "description": "Unique by edge identity within this diagram. Stored order is retained. Each entry counts against the total model record admission limit. Missing routes in earlier schema-3 models default to empty." + }, + "view_options": { + "$ref": "#/components/schemas/ViewOptions", + "default": {} + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "layer", + "projection", + "nodes" + ], + "additionalProperties": false + }, + "ArtifactLink": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "owner": { + "type": "string", + "format": "uuid" + }, + "relation": { + "type": "string", + "enum": [ + "References", + "Satisfies", + "Verifies", + "Implements", + "DerivedFrom" + ] + }, + "uri": { + "type": "string", + "description": "Opaque external artifact reference. Server never fetches or executes it." + }, + "revision": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "fragment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "owner", + "relation", + "uri", + "revision", + "fragment" + ], + "additionalProperties": false + }, + "TracedProperties": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "name", + "description" + ], + "additionalProperties": false + }, + "TraceBaseline": { + "type": "object", + "properties": { + "oa": { + "$ref": "#/components/schemas/TracedProperties" + }, + "sa": { + "$ref": "#/components/schemas/TracedProperties" + }, + "semantic": { + "anyOf": [ + { + "$ref": "#/components/schemas/SemanticBaseline" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Absent/null means Unreviewed. Historical typed facts never become live graph references." + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "Trace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "oa": { + "type": "string", + "format": "uuid" + }, + "sa": { + "type": "string", + "format": "uuid" + }, + "kind": { + "type": "string", + "enum": [ + "Refinement", + "Participant", + "Capability", + "Mission", + "Exchange", + "Sequence", + "Item", + "Scenario", + "State", + "Manual" + ] + }, + "baseline": { + "anyOf": [ + { + "$ref": "#/components/schemas/TraceBaseline" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "oa", + "sa", + "kind", + "baseline" + ], + "additionalProperties": false + }, + "Project": { + "type": "object", + "properties": { + "schema_version": { + "type": "integer", + "const": 7 + }, + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "elements": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Element" + } + }, + "relations": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Relation" + } + }, + "diagrams": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Diagram" + } + }, + "artifact_links": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "traces": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Trace" + } + } + }, + "required": [ + "schema_version", + "id", + "alias", + "name", + "description", + "elements", + "relations", + "diagrams", + "artifact_links", + "traces" + ], + "additionalProperties": false + }, + "StoredProject": { + "type": "object", + "properties": { + "resource_id": { + "type": "string", + "format": "uuid" + }, + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "model": { + "$ref": "#/components/schemas/Project" + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ], + "description": "Present after legacy import/reopen; excluded from persisted envelopes. Resource identity and revision are unchanged by reopening." + }, + "source_project": { + "$ref": "#/components/schemas/SourceBundle" + } + }, + "required": [ + "resource_id", + "revision", + "model", + "source_project" + ], + "additionalProperties": false, + "description": "Accepted coupled model/source snapshot. Compiling source_project reproduces model; revision changes once if either representation changes. Older model-only or schema3 coupled envelopes migrate in memory without a write or revision change; both representations must independently migrate to the same graph." + }, + "ProjectSummary": { + "type": "object", + "properties": { + "resource_id": { + "type": "string", + "format": "uuid" + }, + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "model_id": { + "type": "string", + "format": "uuid" + }, + "schema_version": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "elements": { + "type": "integer", + "minimum": 0 + }, + "relations": { + "type": "integer", + "minimum": 0 + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "resource_id", + "revision", + "model_id", + "schema_version", + "name", + "elements", + "relations" + ], + "additionalProperties": false + }, + "Issue": { + "type": "object", + "properties": { + "severity": { + "type": "string", + "enum": [ + "error", + "warning" + ] + }, + "message": { + "type": "string" + }, + "object_id": { + "type": "string", + "format": "uuid" + }, + "line": { + "type": "integer", + "minimum": 1 + }, + "column": { + "type": "integer", + "minimum": 1, + "description": "One-based Unicode scalar column." + }, + "code": { + "type": "string" + }, + "field": { + "type": "string" + }, + "path": { + "type": "string", + "description": "Logical source file path, when a source project supplied the diagnostic." + }, + "span": { + "$ref": "#/components/schemas/SourceSpan" + }, + "related": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SourceLocation" + } + } + }, + "required": [ + "severity", + "message", + "code" + ], + "additionalProperties": false + }, + "Problem": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "title": { + "type": "string" + }, + "status": { + "type": "integer" + }, + "code": { + "type": "string" + }, + "detail": { + "type": "string" + }, + "current_revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + } + }, + "required": [ + "type", + "title", + "status", + "code", + "detail" + ], + "additionalProperties": false + }, + "NameRequest": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "Command": { + "oneOf": [ + { + "type": "object", + "properties": { + "Replace": { + "$ref": "#/components/schemas/Project" + } + }, + "required": [ + "Replace" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Batch": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Command" + } + } + }, + "required": [ + "Batch" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Add": { + "$ref": "#/components/schemas/Kind" + } + }, + "required": [ + "Add" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "AddElement": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/Kind" + }, + "layer": { + "$ref": "#/components/schemas/Layer" + }, + "name": { + "type": "string" + }, + "parent": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "kind", + "layer", + "name", + "parent" + ], + "additionalProperties": false + } + }, + "required": [ + "AddElement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Connect": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/components/schemas/RelationKind" + }, + { + "type": "string" + }, + { + "type": "string", + "format": "uuid" + }, + { + "type": "string", + "format": "uuid" + } + ], + "minItems": 4, + "maxItems": 4 + } + }, + "required": [ + "Connect" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditProject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "description": "Unique persistent alias; core reserved words are forbidden." + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "id", + "alias", + "name", + "description" + ], + "additionalProperties": false + } + }, + "required": [ + "EditProject" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Reparent": { + "type": "object", + "properties": { + "element": { + "type": "string", + "format": "uuid" + }, + "parent": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "element", + "parent" + ], + "additionalProperties": false + } + }, + "required": [ + "Reparent" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Reidentify": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string", + "format": "uuid" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "Reidentify" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Rename": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "Rename" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Describe": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "Describe" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SetAlias": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "SetAlias" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Delete": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "Delete" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "AddStep": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "string", + "format": "uuid" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "AddStep" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RemoveStep": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "RemoveStep" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MoveStep": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "integer", + "minimum": 0 + } + ], + "minItems": 3, + "maxItems": 3 + } + }, + "required": [ + "MoveStep" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SetSteps": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "SetSteps" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Layout": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "Layout" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateNode": { + "type": "object", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "node": { + "$ref": "#/components/schemas/NodePlacement" + } + }, + "required": [ + "diagram", + "node" + ], + "additionalProperties": false + } + }, + "required": [ + "CreateNode" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditNode": { + "type": "object", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "original": { + "type": "string", + "format": "uuid" + }, + "node": { + "$ref": "#/components/schemas/NodePlacement" + } + }, + "required": [ + "diagram", + "original", + "node" + ], + "additionalProperties": false + } + }, + "required": [ + "EditNode" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RelocateNode": { + "type": "object", + "description": "Move an existing placement to another diagram while preserving its UUID, alias, geometry, collapse state and dependent artifact references. The target diagram must accept the element and must not already contain its placement.", + "properties": { + "node": { + "type": "string", + "format": "uuid" + }, + "diagram": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "node", + "diagram" + ], + "additionalProperties": false + } + }, + "required": [ + "RelocateNode" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MoveNode": { + "type": "object", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "node": { + "type": "string", + "format": "uuid" + }, + "position": { + "$ref": "#/components/schemas/Position" + }, + "with_descendants": { + "type": "boolean" + } + }, + "required": [ + "diagram", + "node", + "position", + "with_descendants" + ], + "additionalProperties": false + } + }, + "required": [ + "MoveNode" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SetEdgeRoute": { + "type": "object", + "description": "Upsert by edge identity; preserves unrelated route entries and order. Uses existing transaction validation and ETag checks.", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "route": { + "$ref": "#/components/schemas/EdgeRoute" + } + }, + "required": [ + "diagram", + "route" + ], + "additionalProperties": false + } + }, + "required": [ + "SetEdgeRoute" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RemoveEdgeRoute": { + "type": "object", + "description": "Reset to automatic routing. No-op if this existing diagram has no route for the existing edge.", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "edge": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "diagram", + "edge" + ], + "additionalProperties": false + } + }, + "required": [ + "RemoveEdgeRoute" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SetPortAnchor": { + "type": "object", + "description": "Upsert manual port position by port identity on an existing owner placement, preserving unrelated entries. Port must be a direct child of the placement's semantic element.", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "node": { + "type": "string", + "format": "uuid" + }, + "anchor": { + "$ref": "#/components/schemas/PortAnchor" + } + }, + "required": [ + "diagram", + "node", + "anchor" + ], + "additionalProperties": false + } + }, + "required": [ + "SetPortAnchor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RemovePortAnchor": { + "type": "object", + "description": "Restore automatic positioning for an existing direct child Port. No-op when that valid owner placement has no manual anchor for the port; wrong or stale ownership is rejected.", + "properties": { + "diagram": { + "type": "string", + "format": "uuid" + }, + "node": { + "type": "string", + "format": "uuid" + }, + "port": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "diagram", + "node", + "port" + ], + "additionalProperties": false + } + }, + "required": [ + "RemovePortAnchor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateElement": { + "$ref": "#/components/schemas/Element" + } + }, + "required": [ + "CreateElement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditElement": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Element" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditElement" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateRelation": { + "$ref": "#/components/schemas/Relation" + } + }, + "required": [ + "CreateRelation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditRelation": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Relation" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditRelation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateDiagram": { + "$ref": "#/components/schemas/Diagram" + } + }, + "required": [ + "CreateDiagram" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditDiagram": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Diagram" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditDiagram" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateArtifact": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "required": [ + "CreateArtifact" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditArtifact": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/ArtifactLink" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditArtifact" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CreateTrace": { + "$ref": "#/components/schemas/Trace" + } + }, + "required": [ + "CreateTrace" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EditTrace": { + "type": "array", + "prefixItems": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Trace" + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "EditTrace" + ], + "additionalProperties": false + } + ] + }, + "TransactionRequest": { + "type": "object", + "properties": { + "commands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Command" + }, + "minItems": 1, + "maxItems": 200 + }, + "dry_run": { + "type": "boolean", + "default": false + } + }, + "required": [ + "commands" + ], + "additionalProperties": false + }, + "TransactionResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "dry_run": { + "type": "boolean" + }, + "changed": { + "type": "boolean" + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + }, + "model": { + "$ref": "#/components/schemas/Project", + "description": "Proposed model, present only for a dry run." + }, + "source_project": { + "$ref": "#/components/schemas/SourceBundle", + "description": "Proposed accepted bundle, present only for a dry run. Source writeback is validated before returning a successful candidate." + } + }, + "required": [ + "revision", + "dry_run", + "changed", + "issues" + ], + "additionalProperties": false + }, + "MutationResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "changed": { + "type": "boolean" + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "changed" + ], + "additionalProperties": false + }, + "ValidationRequest": { + "oneOf": [ + { + "type": "object", + "properties": { + "format": { + "const": "json" + }, + "model": { + "$ref": "#/components/schemas/Project" + } + }, + "required": [ + "format", + "model" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "format": { + "const": "arcadia" + }, + "source": { + "type": "string" + } + }, + "required": [ + "format", + "source" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "format": { + "const": "source-project" + }, + "source_project": { + "$ref": "#/components/schemas/SourceBundle" + } + }, + "required": [ + "format", + "source_project" + ], + "additionalProperties": false + } + ] + }, + "ValidationResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "valid": { + "type": "boolean" + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "valid", + "issues" + ], + "additionalProperties": false + }, + "NeighborhoodRequest": { + "type": "object", + "properties": { + "roots": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "minItems": 1, + "maxItems": 100 + }, + "direction": { + "type": "string", + "enum": [ + "incoming", + "outgoing", + "both" + ], + "default": "both" + }, + "relation_kinds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RelationKind" + } + }, + "max_depth": { + "type": "integer", + "minimum": 0, + "maximum": 4, + "default": 1 + }, + "max_objects": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 200 + }, + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + } + }, + "required": [ + "roots" + ], + "additionalProperties": false + }, + "NeighborhoodResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Element" + } + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Relation" + } + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "revision", + "elements", + "relations", + "truncated" + ], + "additionalProperties": false + }, + "ElementPage": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Element" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "items", + "next_after" + ], + "additionalProperties": false + }, + "RelationPage": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Relation" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "items", + "next_after" + ], + "additionalProperties": false + }, + "ArtifactPage": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "items", + "next_after" + ], + "additionalProperties": false + }, + "TracePage": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Trace" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "items", + "next_after" + ], + "additionalProperties": false + }, + "ProjectPage": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectSummary" + } + }, + "next_after": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "items", + "next_after" + ], + "additionalProperties": false + }, + "TransitionDirection": { + "type": "string", + "enum": [ + "OaToSa", + "SaToOa" + ] + }, + "TransitionField": { + "type": "string", + "enum": [ + "Name", + "Description" + ] + }, + "TransitionMapping": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "target": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "target_kind": { + "anyOf": [ + { + "$ref": "#/components/schemas/Kind" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "source", + "target", + "target_kind" + ], + "additionalProperties": false + }, + "FieldDecision": { + "oneOf": [ + { + "type": "string", + "enum": [ + "TakeSource", + "KeepTarget" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "FieldResolution": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "field": { + "$ref": "#/components/schemas/TransitionField" + }, + "decision": { + "$ref": "#/components/schemas/FieldDecision" + } + }, + "required": [ + "source", + "field", + "decision" + ], + "additionalProperties": false + }, + "TransitionRequest": { + "type": "object", + "properties": { + "direction": { + "$ref": "#/components/schemas/TransitionDirection" + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "maxItems": 100 + }, + "scope": { + "type": "string", + "enum": [ + "SelectedOnly", + "Required", + "Subtree" + ] + }, + "mappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransitionMapping" + }, + "maxItems": 200 + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransitionField" + } + }, + "resolutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FieldResolution" + }, + "maxItems": 400 + }, + "destination_diagram": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "communication_endpoints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommunicationEndpointDecision" + }, + "maxItems": 200, + "default": [], + "description": "Explicit SA component-port pair per selected OA CommunicationMean. Reuse or Create only. Owners follow reviewed participant mappings; no participant-to-port substitution or automatic interface allocation." + }, + "operation_omissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OperationOmission" + }, + "maxItems": 200, + "default": [], + "description": "Explicit SA-to-OA abstraction per selected invocation with operation intent. Nonempty rationale required by core; duplicates, irrelevant sources, and other directions are refused. Replies derive the Call abstraction. Source operation identities and values are preserved." + } + }, + "required": [ + "direction", + "sources", + "scope", + "mappings", + "fields", + "resolutions", + "destination_diagram" + ], + "additionalProperties": false + }, + "FieldChange": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/TransitionField" + }, + "before": { + "type": "string" + }, + "after": { + "type": "string" + } + }, + "required": [ + "field", + "before", + "after" + ], + "additionalProperties": false + }, + "TransitionChange": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "target": { + "$ref": "#/components/schemas/Id" + }, + "action": { + "type": "string", + "enum": [ + "Create", + "Update", + "Reuse" + ] + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FieldChange" + } + } + }, + "required": [ + "source", + "target", + "action", + "fields" + ], + "additionalProperties": false + }, + "TransitionConflict": { + "type": "object", + "properties": { + "source": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "target": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "field": { + "anyOf": [ + { + "$ref": "#/components/schemas/TransitionField" + }, + { + "type": "null" + } + ] + }, + "message": { + "type": "string" + } + }, + "required": [ + "source", + "target", + "field", + "message" + ], + "additionalProperties": false + }, + "TransitionPlan": { + "type": "object", + "properties": { + "base_fingerprint": { + "type": "string" + }, + "request": { + "$ref": "#/components/schemas/TransitionRequest" + }, + "changes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransitionChange" + } + }, + "conflicts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransitionConflict" + } + }, + "warnings": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Command" + } + } + }, + "required": [ + "base_fingerprint", + "request", + "changes", + "conflicts", + "warnings", + "commands" + ], + "additionalProperties": false + }, + "TransitionEnvelope": { + "type": "object", + "properties": { + "base_revision": { + "$ref": "#/components/schemas/Revision" + }, + "plan": { + "$ref": "#/components/schemas/TransitionPlan" + } + }, + "required": [ + "base_revision", + "plan" + ], + "additionalProperties": false + }, + "ControlKind": { + "type": "string", + "enum": [ + "Choice", + "Merge", + "Fork", + "Join", + "Loop" + ] + }, + "ScenarioViewpoint": { + "type": "string", + "enum": [ + "OperationalActivity", + "ParticipantInteraction", + "Functional", + "BoundaryInterface", + "MixedLegacy" + ] + }, + "MessageKind": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Asynchronous", + "Call", + "Reply", + "Create", + "Delete" + ] + }, + { + "type": "object", + "properties": { + "Timer": { + "type": "object", + "properties": { + "expression": { + "type": "string" + } + }, + "required": [ + "expression" + ], + "additionalProperties": false + } + }, + "required": [ + "Timer" + ], + "additionalProperties": false + } + ] + }, + "MessageValue": { + "type": "object", + "properties": { + "path": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "default": [] + }, + "field": { + "type": "string", + "format": "uuid" + }, + "expression": { + "type": "string" + } + }, + "required": [ + "field", + "expression" + ], + "additionalProperties": false, + "description": "Identity is (path, field). Path lists enclosing DataField UUIDs, excluding the terminal field. Value storage traverses named Records; Reference storage stops traversal. Operation Call accepts In/InOut and Reply accepts Out/InOut/Return. Unspecified direction and retained ambiguous legacy empty paths warn. Expressions are descriptive, never executed." + }, + "LifelineBinding": { + "type": "object", + "properties": { + "referenced": { + "type": "string", + "format": "uuid" + }, + "local": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "referenced", + "local" + ], + "additionalProperties": false + }, + "StateKind": { + "type": "string", + "enum": [ + "State", + "Mode", + "Initial", + "Final", + "Choice", + "Junction", + "Fork", + "Join", + "ShallowHistory", + "DeepHistory", + "EntryPoint", + "ExitPoint", + "Terminate" + ] + }, + "TimeEventKind": { + "type": "string", + "enum": [ + "After", + "At" + ], + "description": "After is relative to source-state activation; At describes an absolute instant. Expressions are descriptive, not executed." + }, + "TransitionKind": { + "type": "string", + "enum": [ + "External", + "Local", + "Internal" + ] + }, + "EventBody": { + "oneOf": [ + { + "type": "object", + "properties": { + "Signal": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "uniqueItems": true, + "description": "Same-layer ExchangeItem identities carried by the signal." + } + }, + "required": [ + "items" + ], + "additionalProperties": false + } + }, + "required": [ + "Signal" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Time": { + "type": "object", + "properties": { + "kind": { + "$ref": "#/components/schemas/TimeEventKind" + }, + "expression": { + "type": "string" + } + }, + "required": [ + "kind", + "expression" + ], + "additionalProperties": false + } + }, + "required": [ + "Time" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Change": { + "type": "object", + "properties": { + "expression": { + "type": "string" + } + }, + "required": [ + "expression" + ], + "additionalProperties": false + } + }, + "required": [ + "Change" + ], + "additionalProperties": false + } + ] + }, + "PortContract": { + "oneOf": [ + { + "type": "object", + "properties": { + "FunctionInput": { + "type": "object", + "properties": { + "incoming_items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "incoming_items" + ], + "additionalProperties": false + } + }, + "required": [ + "FunctionInput" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "FunctionOutput": { + "type": "object", + "properties": { + "outgoing_items": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "outgoing_items" + ], + "additionalProperties": false + } + }, + "required": [ + "FunctionOutput" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Component": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "enum": [ + "Standard", + "Flow" + ] + }, + "orientation": { + "type": "string", + "enum": [ + "Unset", + "In", + "Out", + "InOut" + ] + } + }, + "required": [ + "kind", + "orientation" + ], + "additionalProperties": false + } + }, + "required": [ + "Component" + ], + "additionalProperties": false + }, + { + "type": "string", + "enum": [ + "Legacy" + ] + } + ], + "description": "FunctionInput/Output are SA Function-owned item contracts. Component is SA System/SystemActor-owned; Standard requires Unset. Legacy requires a preserved legacy record and emits compatibility warnings. Mixed Standard/Flow component connections are invalid." + }, + "LegacyPortContract": { + "type": "object", + "properties": { + "direction": { + "type": "string", + "enum": [ + "In", + "Out", + "InOut" + ] + }, + "interface": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "direction", + "interface" + ], + "additionalProperties": false + }, + "MigrationReport": { + "type": "object", + "properties": { + "from_schema": { + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + "to_schema": { + "type": "integer", + "const": 7 + }, + "preserved_ports": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string" + }, + "required_resolution": { + "type": "string" + } + }, + "required": [ + "id", + "alias", + "required_resolution" + ], + "additionalProperties": false + } + }, + "generated_endpoints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "exchange": { + "type": "string", + "format": "uuid" + }, + "side": { + "type": "string", + "enum": [ + "source", + "target" + ] + }, + "port": { + "type": "string", + "format": "uuid" + }, + "owner": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string" + } + }, + "required": [ + "exchange", + "side", + "port", + "owner", + "alias" + ], + "additionalProperties": false + } + }, + "orientation_defaults": { + "type": "array", + "items": { + "type": "object", + "properties": { + "exchange": { + "type": "string", + "format": "uuid" + }, + "oriented": { + "type": "boolean", + "const": true + } + }, + "required": [ + "exchange", + "oriented" + ], + "additionalProperties": false + } + }, + "required_resolutions": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "semantic_defaults": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string", + "format": "uuid" + }, + "field": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "object", + "field", + "description" + ], + "additionalProperties": false + } + }, + "generated_interface_allocations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "source": { + "type": "string", + "format": "uuid" + }, + "target": { + "type": "string", + "format": "uuid" + }, + "alias": { + "type": "string" + }, + "order": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + } + }, + "required": [ + "id", + "source", + "target", + "alias", + "order" + ], + "additionalProperties": false + } + }, + "unresolved_message_values": { + "type": "array", + "items": { + "type": "object", + "properties": { + "occurrence": { + "type": "string", + "format": "uuid" + }, + "field": { + "type": "string", + "format": "uuid" + }, + "reason": { + "type": "string" + } + }, + "required": [ + "occurrence", + "field", + "reason" + ], + "additionalProperties": false + } + } + }, + "required": [ + "from_schema", + "to_schema", + "preserved_ports", + "generated_endpoints", + "orientation_defaults", + "required_resolutions" + ], + "additionalProperties": false, + "description": "Transient observations from explicit V1/V2/V3/V4/V5/V6 to V7 migration. New report lists default to empty when reading older responses. Reading an old envelope neither saves nor changes its revision. Allocation UUIDv5 uses project namespace and v2-interface-item::." + }, + "SourceBundle": { + "type": "object", + "description": "Complete source7 workspace (source3/4/5/6 migrate explicitly). The entry is a root filename. Files use canonical portable slash-separated relative .arcadia paths and all must be reachable. Includes resolve only against this map, never the service filesystem. Up to 256 files, 32 include edges along a path and 1,024 include edges overall. Serialized bundle JSON is at most 8 MiB, checked again after missing UUIDs are inserted. GET returns exact accepted stable text.", + "properties": { + "entry": { + "type": "string" + }, + "files": { + "type": "object", + "maxProperties": 256, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "entry", + "files" + ], + "additionalProperties": false + }, + "SourceSpan": { + "type": "object", + "description": "Half-open UTF-8 byte offsets [start,end) in the named source file.", + "properties": { + "start": { + "type": "integer", + "minimum": 0 + }, + "end": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "start", + "end" + ], + "additionalProperties": false + }, + "SourceLocation": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "span": { + "$ref": "#/components/schemas/SourceSpan" + } + }, + "required": [ + "path", + "span" + ], + "additionalProperties": false + }, + "SourceProjectMutationResult": { + "type": "object", + "properties": { + "revision": { + "type": "integer", + "minimum": 1, + "description": "Current revision counter; use ETag as the opaque write validator." + }, + "changed": { + "type": "boolean" + }, + "issues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Issue" + } + }, + "source_project": { + "$ref": "#/components/schemas/SourceBundle" + }, + "migration": { + "anyOf": [ + { + "$ref": "#/components/schemas/MigrationReport" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "revision", + "changed", + "issues", + "source_project", + "migration" + ], + "additionalProperties": false + }, + "ExchangeItemKind": { + "type": "string", + "enum": [ + "Information", + "Material", + "Energy" + ] + }, + "ExchangeMechanism": { + "type": "string", + "enum": [ + "Unspecified", + "Flow", + "Event", + "Operation", + "SharedData" + ] + }, + "ParameterDirection": { + "type": "string", + "enum": [ + "Unspecified", + "In", + "Out", + "InOut", + "Return" + ] + }, + "FieldStorage": { + "type": "string", + "enum": [ + "Value", + "Reference" + ] + }, + "TransmissionProtocol": { + "type": "string", + "enum": [ + "Unspecified", + "Synchronous", + "Asynchronous", + "Unicast", + "Multicast", + "Broadcast" + ] + }, + "AcquisitionProtocol": { + "type": "string", + "enum": [ + "Unspecified", + "Read", + "Accept" + ] + }, + "DataValue": { + "oneOf": [ + { + "type": "object", + "properties": { + "Boolean": { + "type": "boolean" + } + }, + "required": [ + "Boolean" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Integer": { + "type": "integer", + "format": "int64", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + } + }, + "required": [ + "Integer" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Real": { + "type": "number", + "format": "double", + "description": "Finite IEEE-754 binary64; no coercion from typed Integer values." + } + }, + "required": [ + "Real" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "String": { + "type": "string" + } + }, + "required": [ + "String" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Enumeration": { + "type": "string" + } + }, + "required": [ + "Enumeration" + ], + "additionalProperties": false + } + ] + }, + "DataConstructor": { + "type": "string", + "enum": [ + "Boolean", + "Integer", + "Real", + "String", + "Enumeration", + "Record" + ] + }, + "PortConstructor": { + "type": "string", + "enum": [ + "FunctionInput", + "FunctionOutput", + "Component", + "Legacy" + ] + }, + "OccurrenceConstructor": { + "type": "string", + "enum": [ + "Exchange", + "Action", + "Control", + "SequenceReference", + "ScenarioUse", + "State", + "Fragment", + "Branch" + ] + }, + "EventConstructor": { + "type": "string", + "enum": [ + "Signal", + "Time", + "Change" + ] + }, + "MessageConstructor": { + "type": "string", + "enum": [ + "Asynchronous", + "Call", + "Reply", + "Create", + "Delete", + "Timer" + ] + }, + "ReferenceCollection": { + "type": "string", + "enum": [ + "Steps", + "FragmentBranches", + "FunctionInputItems", + "FunctionOutputItems", + "SignalItems", + "ExchangeItems", + "CategoryExchanges", + "TransitionTriggers", + "TransitionEffects", + "Constrained" + ] + }, + "OrderedCollection": { + "type": "string", + "enum": [ + "Steps", + "FragmentBranches" + ] + }, + "IncidentEnd": { + "type": "string", + "enum": [ + "Source", + "Target" + ] + }, + "ArtifactFacet": { + "type": "string", + "enum": [ + "Presence", + "Name", + "Description", + "Owner", + "Relation", + "Uri", + "Revision", + "Fragment" + ] + }, + "ComponentPortKind": { + "type": "string", + "enum": [ + "Standard", + "Flow" + ] + }, + "ComponentPortOrientation": { + "type": "string", + "enum": [ + "Unset", + "In", + "Out", + "InOut" + ] + }, + "PortDirection": { + "type": "string", + "enum": [ + "In", + "Out", + "InOut" + ] + }, + "FragmentOperator": { + "type": "string", + "enum": [ + "Alternative", + "Parallel", + "Loop", + "Optional" + ] + }, + "StateActionKind": { + "type": "string", + "enum": [ + "Entry", + "Do", + "Exit" + ] + }, + "ArtifactRelation": { + "type": "string", + "enum": [ + "References", + "Satisfies", + "Verifies", + "Implements", + "DerivedFrom" + ] + }, + "HeaderFacet": { + "type": "string", + "enum": [ + "Name", + "Description", + "Parent" + ] + }, + "ReviewedString": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionId": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "HeaderReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Name": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Description": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Description" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Parent": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Parent" + ], + "additionalProperties": false + } + ] + }, + "ExchangeItemFacet": { + "type": "string", + "enum": [ + "Nature", + "Mechanism", + "Supertype" + ] + }, + "ReviewedExchangeItemKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeItemKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeItemKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedExchangeMechanism": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeMechanism" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeMechanism" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ExchangeItemReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Nature": { + "$ref": "#/components/schemas/ReviewedExchangeItemKind" + } + }, + "required": [ + "Nature" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Mechanism": { + "$ref": "#/components/schemas/ReviewedExchangeMechanism" + } + }, + "required": [ + "Mechanism" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Supertype": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Supertype" + ], + "additionalProperties": false + } + ] + }, + "InterfaceFacet": { + "type": "string", + "enum": [ + "Supertype" + ] + }, + "InterfaceReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Supertype": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Supertype" + ], + "additionalProperties": false + } + ] + }, + "DataFacet": { + "type": "string", + "enum": [ + "Constructor", + "IntegerMinimum", + "IntegerMaximum", + "RealMinimum", + "RealMaximum", + "StringMinimumLength", + "StringMaximumLength", + "RecordSupertype", + "Default", + "Unit" + ] + }, + "ReviewedDataConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/DataConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/DataConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptioni64": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "integer", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "integer", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionf64": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "Reviewedu32": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionu32": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionDataValue": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/DataValue" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/DataValue" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "DataReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Constructor": { + "$ref": "#/components/schemas/ReviewedDataConstructor" + } + }, + "required": [ + "Constructor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "IntegerMinimum": { + "$ref": "#/components/schemas/ReviewedOptioni64" + } + }, + "required": [ + "IntegerMinimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "IntegerMaximum": { + "$ref": "#/components/schemas/ReviewedOptioni64" + } + }, + "required": [ + "IntegerMaximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RealMinimum": { + "$ref": "#/components/schemas/ReviewedOptionf64" + } + }, + "required": [ + "RealMinimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RealMaximum": { + "$ref": "#/components/schemas/ReviewedOptionf64" + } + }, + "required": [ + "RealMaximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StringMinimumLength": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "StringMinimumLength" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StringMaximumLength": { + "$ref": "#/components/schemas/ReviewedOptionu32" + } + }, + "required": [ + "StringMaximumLength" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RecordSupertype": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "RecordSupertype" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Default": { + "$ref": "#/components/schemas/ReviewedOptionDataValue" + } + }, + "required": [ + "Default" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Unit": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Unit" + ], + "additionalProperties": false + } + ] + }, + "FieldFacet": { + "type": "string", + "enum": [ + "Type", + "Minimum", + "Maximum", + "Unit", + "Direction", + "Storage", + "Default" + ] + }, + "ReviewedTypeRef": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TypeRef" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TypeRef" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedParameterDirection": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ParameterDirection" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ParameterDirection" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedFieldStorage": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/FieldStorage" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/FieldStorage" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionVecDataValue": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataValue" + } + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataValue" + } + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "FieldReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Type": { + "$ref": "#/components/schemas/ReviewedTypeRef" + } + }, + "required": [ + "Type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Minimum": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "Minimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Maximum": { + "$ref": "#/components/schemas/ReviewedOptionu32" + } + }, + "required": [ + "Maximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Unit": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Unit" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Direction": { + "$ref": "#/components/schemas/ReviewedParameterDirection" + } + }, + "required": [ + "Direction" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Storage": { + "$ref": "#/components/schemas/ReviewedFieldStorage" + } + }, + "required": [ + "Storage" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Default": { + "$ref": "#/components/schemas/ReviewedOptionVecDataValue" + } + }, + "required": [ + "Default" + ], + "additionalProperties": false + } + ] + }, + "PortFacet": { + "type": "string", + "enum": [ + "Constructor", + "ComponentKind", + "Orientation", + "LegacyDirection", + "LegacyInterface" + ] + }, + "ReviewedPortConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/PortConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/PortConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedComponentPortKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ComponentPortKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ComponentPortKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedComponentPortOrientation": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ComponentPortOrientation" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ComponentPortOrientation" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedPortDirection": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/PortDirection" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/PortDirection" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "PortReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Constructor": { + "$ref": "#/components/schemas/ReviewedPortConstructor" + } + }, + "required": [ + "Constructor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ComponentKind": { + "$ref": "#/components/schemas/ReviewedComponentPortKind" + } + }, + "required": [ + "ComponentKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Orientation": { + "$ref": "#/components/schemas/ReviewedComponentPortOrientation" + } + }, + "required": [ + "Orientation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "LegacyDirection": { + "$ref": "#/components/schemas/ReviewedPortDirection" + } + }, + "required": [ + "LegacyDirection" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "LegacyInterface": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "LegacyInterface" + ], + "additionalProperties": false + } + ] + }, + "ScenarioFacet": { + "type": "string", + "enum": [ + "Viewpoint", + "Context", + "Precondition", + "Postcondition" + ] + }, + "ReviewedScenarioViewpoint": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ScenarioViewpoint" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ScenarioViewpoint" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ScenarioReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Viewpoint": { + "$ref": "#/components/schemas/ReviewedScenarioViewpoint" + } + }, + "required": [ + "Viewpoint" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Context": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Context" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Precondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Precondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Postcondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Postcondition" + ], + "additionalProperties": false + } + ] + }, + "LifelineFacet": { + "type": "string", + "enum": [ + "Represented" + ] + }, + "LifelineReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Represented": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Represented" + ], + "additionalProperties": false + } + ] + }, + "OccurrenceFacet": { + "type": "string", + "enum": [ + "Constructor", + "Precondition", + "Postcondition", + "Exchange", + "Sender", + "Receiver", + "MessageKind", + "TimerExpression", + "ReplyTo", + "Operation", + "Action", + "ActionLifeline", + "ControlKind", + "Sequence", + "Scenario", + "State", + "StateLifeline", + "FragmentOperator", + "BranchGuard" + ] + }, + "ReviewedOccurrenceConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/OccurrenceConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/OccurrenceConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedMessageConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/MessageConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/MessageConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedControlKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ControlKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ControlKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedFragmentOperator": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/FragmentOperator" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/FragmentOperator" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "OccurrenceReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Constructor": { + "$ref": "#/components/schemas/ReviewedOccurrenceConstructor" + } + }, + "required": [ + "Constructor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Precondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Precondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Postcondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Postcondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Exchange": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Exchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Sender": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Sender" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Receiver": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Receiver" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MessageKind": { + "$ref": "#/components/schemas/ReviewedMessageConstructor" + } + }, + "required": [ + "MessageKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TimerExpression": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "TimerExpression" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ReplyTo": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "ReplyTo" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Operation": { + "$ref": "#/components/schemas/ReviewedOptionOperationUse" + } + }, + "required": [ + "Operation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Action": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Action" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ActionLifeline": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "ActionLifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ControlKind": { + "$ref": "#/components/schemas/ReviewedControlKind" + } + }, + "required": [ + "ControlKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Sequence": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Sequence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Scenario": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "Scenario" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StateLifeline": { + "$ref": "#/components/schemas/ReviewedOptionId" + } + }, + "required": [ + "StateLifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "FragmentOperator": { + "$ref": "#/components/schemas/ReviewedFragmentOperator" + } + }, + "required": [ + "FragmentOperator" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "BranchGuard": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "BranchGuard" + ], + "additionalProperties": false + } + ] + }, + "EventFacet": { + "type": "string", + "enum": [ + "Constructor", + "TimeKind", + "TimeExpression", + "ChangeExpression" + ] + }, + "ReviewedEventConstructor": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/EventConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/EventConstructor" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedTimeEventKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TimeEventKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TimeEventKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "EventReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Constructor": { + "$ref": "#/components/schemas/ReviewedEventConstructor" + } + }, + "required": [ + "Constructor" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TimeKind": { + "$ref": "#/components/schemas/ReviewedTimeEventKind" + } + }, + "required": [ + "TimeKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TimeExpression": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "TimeExpression" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ChangeExpression": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "ChangeExpression" + ], + "additionalProperties": false + } + ] + }, + "StateFacet": { + "type": "string", + "enum": [ + "Kind", + "Entry", + "Exit", + "DoActivity" + ] + }, + "ReviewedStateKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/StateKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/StateKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "StateReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Kind": { + "$ref": "#/components/schemas/ReviewedStateKind" + } + }, + "required": [ + "Kind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Entry": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Entry" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Exit": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Exit" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DoActivity": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "DoActivity" + ], + "additionalProperties": false + } + ] + }, + "ConstraintFacet": { + "type": "string", + "enum": [ + "Expression" + ] + }, + "ConstraintReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Expression" + ], + "additionalProperties": false + } + ] + }, + "RelationFacet": { + "type": "string", + "enum": [ + "Source", + "Target", + "AllocationOrder", + "Transmission", + "Acquisition", + "SourceRole", + "TargetRole", + "SourceMinimum", + "SourceMaximum", + "TargetMinimum", + "TargetMaximum", + "SourceNavigable", + "TargetNavigable", + "SourcePort", + "TargetPort", + "Oriented", + "ExtendCondition", + "SequenceGuard", + "TransitionKind", + "Trigger", + "Guard", + "Effect", + "StateActionPhase", + "ContextOwner", + "ContextSource", + "ContextTarget", + "ContextPurpose" + ] + }, + "ReviewedId": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedTransmissionProtocol": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TransmissionProtocol" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TransmissionProtocol" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedAcquisitionProtocol": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/AcquisitionProtocol" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/AcquisitionProtocol" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "Reviewedbool": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedTransitionKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TransitionKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/TransitionKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedStateActionKind": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/StateActionKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/StateActionKind" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "RelationReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Source": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "Source" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Target": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "Target" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "AllocationOrder": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "AllocationOrder" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Transmission": { + "$ref": "#/components/schemas/ReviewedTransmissionProtocol" + } + }, + "required": [ + "Transmission" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Acquisition": { + "$ref": "#/components/schemas/ReviewedAcquisitionProtocol" + } + }, + "required": [ + "Acquisition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourceRole": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "SourceRole" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetRole": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "TargetRole" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourceMinimum": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "SourceMinimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourceMaximum": { + "$ref": "#/components/schemas/ReviewedOptionu32" + } + }, + "required": [ + "SourceMaximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetMinimum": { + "$ref": "#/components/schemas/Reviewedu32" + } + }, + "required": [ + "TargetMinimum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetMaximum": { + "$ref": "#/components/schemas/ReviewedOptionu32" + } + }, + "required": [ + "TargetMaximum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourceNavigable": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "SourceNavigable" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetNavigable": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "TargetNavigable" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SourcePort": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "SourcePort" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TargetPort": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "TargetPort" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Oriented": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "Oriented" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExtendCondition": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "ExtendCondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SequenceGuard": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "SequenceGuard" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TransitionKind": { + "$ref": "#/components/schemas/ReviewedTransitionKind" + } + }, + "required": [ + "TransitionKind" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Trigger": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Trigger" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Guard": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Guard" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Effect": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Effect" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StateActionPhase": { + "$ref": "#/components/schemas/ReviewedStateActionKind" + } + }, + "required": [ + "StateActionPhase" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextOwner": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "ContextOwner" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextSource": { + "$ref": "#/components/schemas/ReviewedOccurrenceEndpoint" + } + }, + "required": [ + "ContextSource" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextTarget": { + "$ref": "#/components/schemas/ReviewedOccurrenceEndpoint" + } + }, + "required": [ + "ContextTarget" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ContextPurpose": { + "$ref": "#/components/schemas/ReviewedContextualLinkPurpose" + } + }, + "required": [ + "ContextPurpose" + ], + "additionalProperties": false + } + ] + }, + "AnnotationKey": { + "type": "object", + "properties": { + "path": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + }, + "field": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "path", + "field" + ], + "additionalProperties": false + }, + "KeyPairId": { + "type": "object", + "properties": { + "oa": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + }, + "sa": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + } + }, + "required": [], + "additionalProperties": false + }, + "KeyPairString": { + "type": "object", + "properties": { + "oa": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sa": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [], + "additionalProperties": false + }, + "KeyPairAnnotationKey": { + "type": "object", + "properties": { + "oa": { + "anyOf": [ + { + "$ref": "#/components/schemas/AnnotationKey" + }, + { + "type": "null" + } + ] + }, + "sa": { + "anyOf": [ + { + "$ref": "#/components/schemas/AnnotationKey" + }, + { + "type": "null" + } + ] + } + }, + "required": [], + "additionalProperties": false + }, + "ReviewedArtifactRelation": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ArtifactRelation" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ArtifactRelation" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionString": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ArtifactReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Presence": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "Presence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Name": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Description": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Description" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Owner": { + "$ref": "#/components/schemas/ReviewedId" + } + }, + "required": [ + "Owner" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/ReviewedArtifactRelation" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Uri": { + "$ref": "#/components/schemas/ReviewedString" + } + }, + "required": [ + "Uri" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Revision": { + "$ref": "#/components/schemas/ReviewedOptionString" + } + }, + "required": [ + "Revision" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Fragment": { + "$ref": "#/components/schemas/ReviewedOptionString" + } + }, + "required": [ + "Fragment" + ], + "additionalProperties": false + } + ] + }, + "ReviewedVecId": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionMessageValue": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/MessageValue" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/MessageValue" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOptionLifelineBinding": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/LifelineBinding" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/LifelineBinding" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "FacetSelector": { + "oneOf": [ + { + "type": "object", + "properties": { + "Header": { + "$ref": "#/components/schemas/HeaderFacet" + } + }, + "required": [ + "Header" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExchangeItem": { + "$ref": "#/components/schemas/ExchangeItemFacet" + } + }, + "required": [ + "ExchangeItem" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Category": { + "$ref": "#/components/schemas/CategoryFacet" + } + }, + "required": [ + "Category" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Interface": { + "$ref": "#/components/schemas/InterfaceFacet" + } + }, + "required": [ + "Interface" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Data": { + "$ref": "#/components/schemas/DataFacet" + } + }, + "required": [ + "Data" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Field": { + "$ref": "#/components/schemas/FieldFacet" + } + }, + "required": [ + "Field" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Port": { + "$ref": "#/components/schemas/PortFacet" + } + }, + "required": [ + "Port" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Scenario": { + "$ref": "#/components/schemas/ScenarioFacet" + } + }, + "required": [ + "Scenario" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Lifeline": { + "$ref": "#/components/schemas/LifelineFacet" + } + }, + "required": [ + "Lifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Occurrence": { + "$ref": "#/components/schemas/OccurrenceFacet" + } + }, + "required": [ + "Occurrence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Event": { + "$ref": "#/components/schemas/EventFacet" + } + }, + "required": [ + "Event" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "$ref": "#/components/schemas/StateFacet" + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Constraint": { + "$ref": "#/components/schemas/ConstraintFacet" + } + }, + "required": [ + "Constraint" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/RelationFacet" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Member": { + "type": "object", + "properties": { + "collection": { + "$ref": "#/components/schemas/ReferenceCollection" + }, + "keys": { + "$ref": "#/components/schemas/KeyPairId" + } + }, + "required": [ + "collection", + "keys" + ], + "additionalProperties": false + } + }, + "required": [ + "Member" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Order": { + "$ref": "#/components/schemas/OrderedCollection" + } + }, + "required": [ + "Order" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Literal": { + "$ref": "#/components/schemas/KeyPairString" + } + }, + "required": [ + "Literal" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Annotation": { + "$ref": "#/components/schemas/KeyPairAnnotationKey" + } + }, + "required": [ + "Annotation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Binding": { + "$ref": "#/components/schemas/KeyPairId" + } + }, + "required": [ + "Binding" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Child": { + "$ref": "#/components/schemas/KeyPairId" + } + }, + "required": [ + "Child" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Incident": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "end": { + "$ref": "#/components/schemas/IncidentEnd" + } + }, + "required": [ + "keys", + "end" + ], + "additionalProperties": false + } + }, + "required": [ + "Incident" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Artifact": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "facet": { + "$ref": "#/components/schemas/ArtifactFacet" + } + }, + "required": [ + "keys", + "facet" + ], + "additionalProperties": false + } + }, + "required": [ + "Artifact" + ], + "additionalProperties": false + } + ] + }, + "FacetReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Header": { + "$ref": "#/components/schemas/HeaderReview" + } + }, + "required": [ + "Header" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ExchangeItem": { + "$ref": "#/components/schemas/ExchangeItemReview" + } + }, + "required": [ + "ExchangeItem" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Category": { + "$ref": "#/components/schemas/CategoryReview" + } + }, + "required": [ + "Category" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Interface": { + "$ref": "#/components/schemas/InterfaceReview" + } + }, + "required": [ + "Interface" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Data": { + "$ref": "#/components/schemas/DataReview" + } + }, + "required": [ + "Data" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Field": { + "$ref": "#/components/schemas/FieldReview" + } + }, + "required": [ + "Field" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Port": { + "$ref": "#/components/schemas/PortReview" + } + }, + "required": [ + "Port" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Scenario": { + "$ref": "#/components/schemas/ScenarioReview" + } + }, + "required": [ + "Scenario" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Lifeline": { + "$ref": "#/components/schemas/LifelineReview" + } + }, + "required": [ + "Lifeline" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Occurrence": { + "$ref": "#/components/schemas/OccurrenceReview" + } + }, + "required": [ + "Occurrence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Event": { + "$ref": "#/components/schemas/EventReview" + } + }, + "required": [ + "Event" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "State": { + "$ref": "#/components/schemas/StateReview" + } + }, + "required": [ + "State" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Constraint": { + "$ref": "#/components/schemas/ConstraintReview" + } + }, + "required": [ + "Constraint" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/RelationReview" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Member": { + "type": "object", + "properties": { + "collection": { + "$ref": "#/components/schemas/ReferenceCollection" + }, + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "review": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "collection", + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Member" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Order": { + "type": "object", + "properties": { + "collection": { + "$ref": "#/components/schemas/OrderedCollection" + }, + "review": { + "$ref": "#/components/schemas/ReviewedVecId" + } + }, + "required": [ + "collection", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Order" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Literal": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairString" + }, + "review": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Literal" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Annotation": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairAnnotationKey" + }, + "review": { + "$ref": "#/components/schemas/ReviewedOptionMessageValue" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Annotation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Binding": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "review": { + "$ref": "#/components/schemas/ReviewedOptionLifelineBinding" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Binding" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Child": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "review": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Child" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Incident": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "end": { + "$ref": "#/components/schemas/IncidentEnd" + }, + "review": { + "$ref": "#/components/schemas/Reviewedbool" + } + }, + "required": [ + "keys", + "end", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Incident" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Artifact": { + "type": "object", + "properties": { + "keys": { + "$ref": "#/components/schemas/KeyPairId" + }, + "review": { + "$ref": "#/components/schemas/ArtifactReview" + } + }, + "required": [ + "keys", + "review" + ], + "additionalProperties": false + } + }, + "required": [ + "Artifact" + ], + "additionalProperties": false + } + ] + }, + "SemanticBaseline": { + "type": "object", + "properties": { + "facets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetReview" + } + } + }, + "required": [ + "facets" + ], + "additionalProperties": false + }, + "Drift": { + "type": "string", + "enum": [ + "Unreviewed", + "Unchanged", + "OaChanged", + "SaChanged", + "BothChanged" + ] + }, + "FacetDrift": { + "type": "object", + "properties": { + "selector": { + "$ref": "#/components/schemas/FacetSelector" + }, + "current": { + "$ref": "#/components/schemas/FacetReview" + }, + "drift": { + "$ref": "#/components/schemas/Drift" + } + }, + "required": [ + "selector", + "current", + "drift" + ], + "additionalProperties": false + }, + "SemanticDrift": { + "type": "object", + "properties": { + "own": { + "$ref": "#/components/schemas/Drift" + }, + "linked": { + "$ref": "#/components/schemas/Drift" + }, + "own_unreviewed": { + "type": "boolean" + }, + "linked_unreviewed": { + "type": "boolean" + } + }, + "required": [ + "own", + "linked", + "own_unreviewed", + "linked_unreviewed" + ], + "additionalProperties": false + }, + "LinkedSemanticImpact": { + "type": "object", + "properties": { + "objects": { + "$ref": "#/components/schemas/KeyPairId" + }, + "traces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + }, + "drift": { + "$ref": "#/components/schemas/Drift" + }, + "unreviewed": { + "type": "boolean" + } + }, + "required": [ + "objects", + "traces", + "drift", + "unreviewed" + ], + "additionalProperties": false + }, + "SemanticRecord": { + "oneOf": [ + { + "type": "object", + "properties": { + "Element": { + "$ref": "#/components/schemas/Element" + } + }, + "required": [ + "Element" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/Relation" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Artifact": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "required": [ + "Artifact" + ], + "additionalProperties": false + } + ] + }, + "ImpactRecord": { + "oneOf": [ + { + "type": "object", + "properties": { + "Element": { + "$ref": "#/components/schemas/Element" + } + }, + "required": [ + "Element" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/Relation" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Artifact": { + "$ref": "#/components/schemas/ArtifactLink" + } + }, + "required": [ + "Artifact" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Diagram": { + "$ref": "#/components/schemas/Diagram" + } + }, + "required": [ + "Diagram" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Trace": { + "$ref": "#/components/schemas/Trace" + } + }, + "required": [ + "Trace" + ], + "additionalProperties": false + } + ] + }, + "SemanticImpact": { + "type": "object", + "properties": { + "object": { + "$ref": "#/components/schemas/Id" + }, + "before": { + "anyOf": [ + { + "$ref": "#/components/schemas/ImpactRecord" + }, + { + "type": "null" + } + ] + }, + "after": { + "anyOf": [ + { + "$ref": "#/components/schemas/ImpactRecord" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "object" + ], + "additionalProperties": false + }, + "SemanticDecision": { + "type": "string", + "enum": [ + "KeepTarget", + "TakeSource", + "Candidate" + ] + }, + "FacetResolution": { + "type": "object", + "properties": { + "facet": { + "$ref": "#/components/schemas/FacetSelector" + }, + "decision": { + "$ref": "#/components/schemas/SemanticDecision" + } + }, + "required": [ + "facet", + "decision" + ], + "additionalProperties": false + }, + "SemanticReviewRequest": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "resolutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetResolution" + }, + "maxItems": 5000 + }, + "reset": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetSelector" + }, + "maxItems": 5000, + "default": [] + } + }, + "required": [ + "source", + "resolutions" + ], + "additionalProperties": false + }, + "SemanticTransitionRequest": { + "type": "object", + "properties": { + "transition": { + "$ref": "#/components/schemas/TransitionRequest" + }, + "traces": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Id" + }, + "maxProperties": 100, + "default": {} + }, + "references": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Id" + }, + "maxProperties": 5000, + "default": {} + }, + "reviews": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticReviewRequest" + }, + "maxItems": 100, + "default": [] + }, + "candidates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticRecord" + }, + "maxItems": 200, + "default": [] + }, + "accepted_impacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticImpact" + }, + "maxItems": 200, + "default": [] + } + }, + "required": [ + "transition" + ], + "additionalProperties": false, + "description": "Canonical OA-to-SA references include historical UUIDs. Traces map selected source IDs to trace IDs. Combined resolutions/reset limit: 5,000. Candidates must equal exactly the result of their selected facets; accepted_impacts explicitly acknowledge exact induced changes." + }, + "SemanticReviewPreview": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "target": { + "$ref": "#/components/schemas/Id" + }, + "facets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetDrift" + } + }, + "acknowledged": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetSelector" + } + }, + "retired": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetSelector" + } + }, + "linked_impacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LinkedSemanticImpact" + } + } + }, + "required": [ + "source", + "target", + "facets", + "acknowledged", + "retired", + "linked_impacts" + ], + "additionalProperties": false + }, + "SemanticTransitionPlan": { + "type": "object", + "properties": { + "base_fingerprint": { + "type": "string" + }, + "request": { + "$ref": "#/components/schemas/SemanticTransitionRequest" + }, + "transition": { + "$ref": "#/components/schemas/TransitionPlan" + }, + "reviews": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticReviewPreview" + } + }, + "impacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticImpact" + } + }, + "conflicts": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Command" + }, + "maxItems": 200 + }, + "prepared_fingerprint": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "base_fingerprint", + "request", + "transition", + "reviews", + "impacts", + "conflicts", + "commands" + ], + "additionalProperties": false + }, + "SemanticTransitionEnvelope": { + "type": "object", + "properties": { + "base_revision": { + "$ref": "#/components/schemas/Revision" + }, + "plan": { + "$ref": "#/components/schemas/SemanticTransitionPlan" + } + }, + "required": [ + "base_revision", + "plan" + ], + "additionalProperties": false + }, + "SemanticQueryRequest": { + "type": "object", + "properties": { + "traces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + }, + "references": { + "type": "object", + "propertyNames": { + "format": "uuid" + }, + "additionalProperties": { + "$ref": "#/components/schemas/Id" + }, + "maxProperties": 5000, + "default": {} + }, + "revision": { + "anyOf": [ + { + "$ref": "#/components/schemas/Revision" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "traces" + ], + "additionalProperties": false + }, + "SemanticQueryItem": { + "type": "object", + "properties": { + "trace": { + "$ref": "#/components/schemas/Id" + }, + "oa": { + "$ref": "#/components/schemas/Id" + }, + "sa": { + "$ref": "#/components/schemas/Id" + }, + "facets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FacetDrift" + } + }, + "drift": { + "$ref": "#/components/schemas/SemanticDrift" + }, + "linked_impacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LinkedSemanticImpact" + } + } + }, + "required": [ + "trace", + "oa", + "sa", + "facets", + "drift", + "linked_impacts" + ], + "additionalProperties": false + }, + "SemanticQueryResult": { + "type": "object", + "properties": { + "revision": { + "$ref": "#/components/schemas/Revision" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SemanticQueryItem" + }, + "maxItems": 100 + } + }, + "required": [ + "revision", + "items" + ], + "additionalProperties": false + }, + "ExchangeFamily": { + "type": "string", + "enum": [ + "Work", + "Participant" + ] + }, + "Coverage": { + "type": "string", + "enum": [ + "All", + "InBehavior", + "OutsideBehavior" + ] + }, + "ExchangeLabels": { + "type": "string", + "enum": [ + "Name", + "Items", + "NameAndItems" + ] + }, + "CategoryFacet": { + "type": "string", + "enum": [ + "Family" + ] + }, + "ReviewedExchangeFamily": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeFamily" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ExchangeFamily" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "CategoryReview": { + "oneOf": [ + { + "type": "object", + "properties": { + "Family": { + "$ref": "#/components/schemas/ReviewedExchangeFamily" + } + }, + "required": [ + "Family" + ], + "additionalProperties": false + } + ] + }, + "EdgeKind": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Trace" + ] + }, + { + "type": "object", + "properties": { + "Relation": { + "$ref": "#/components/schemas/RelationKind" + } + }, + "required": [ + "Relation" + ], + "additionalProperties": false + } + ] + }, + "RelationKinds": { + "oneOf": [ + { + "type": "string", + "enum": [ + "All" + ] + }, + { + "type": "object", + "properties": { + "Only": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeKind" + } + } + }, + "required": [ + "Only" + ], + "additionalProperties": false + } + ] + }, + "CategorySelection": { + "oneOf": [ + { + "type": "string", + "enum": [ + "All" + ] + }, + { + "type": "object", + "properties": { + "Any": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "Any" + ], + "additionalProperties": false + } + ] + }, + "ContextSelection": { + "oneOf": [ + { + "type": "string", + "enum": [ + "All" + ] + }, + { + "type": "object", + "properties": { + "Any": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + } + } + }, + "required": [ + "Any" + ], + "additionalProperties": false + } + ] + }, + "ViewOptions": { + "type": "object", + "properties": { + "hidden_edges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "default": [] + }, + "relation_kinds": { + "$ref": "#/components/schemas/RelationKinds", + "default": "All" + }, + "work_categories": { + "$ref": "#/components/schemas/CategorySelection", + "default": "All" + }, + "participant_categories": { + "$ref": "#/components/schemas/CategorySelection", + "default": "All" + }, + "coverage": { + "$ref": "#/components/schemas/Coverage", + "default": "All" + }, + "work_contexts": { + "$ref": "#/components/schemas/ContextSelection", + "default": "All" + }, + "exchange_labels": { + "$ref": "#/components/schemas/ExchangeLabels", + "default": "Name" + } + }, + "required": [], + "additionalProperties": false, + "description": "Presentation only. Independent predicates intersect; category members union within a family. Only([]) hides all relations and traces. Any([]) remains an explicit empty selection. Traceability permits both-layer hidden/category/context references; ordinary projections require the diagram layer. Filtering preserves unfiltered automatic port positions." + }, + "CommunicationPortChoice": { + "oneOf": [ + { + "type": "object", + "properties": { + "Reuse": { + "type": "object", + "properties": { + "port": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "port" + ], + "additionalProperties": false + } + }, + "required": [ + "Reuse" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/Id" + }, + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "kind": { + "$ref": "#/components/schemas/ComponentPortKind" + }, + "orientation": { + "$ref": "#/components/schemas/ComponentPortOrientation" + } + }, + "required": [ + "id", + "alias", + "name", + "description", + "kind", + "orientation" + ], + "additionalProperties": false + } + }, + "required": [ + "Create" + ], + "additionalProperties": false + } + ] + }, + "CommunicationEndpointDecision": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "source_port": { + "$ref": "#/components/schemas/CommunicationPortChoice" + }, + "target_port": { + "$ref": "#/components/schemas/CommunicationPortChoice" + } + }, + "required": [ + "source", + "source_port", + "target_port" + ], + "additionalProperties": false + }, + "ReviewedOptionOperationUse": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/OperationUse" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "anyOf": [ + { + "$ref": "#/components/schemas/OperationUse" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedOccurrenceEndpoint": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/OccurrenceEndpoint" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/OccurrenceEndpoint" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "ReviewedContextualLinkPurpose": { + "type": "object", + "properties": { + "oa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ContextualLinkPurpose" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + }, + "sa": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotApplicable" + ] + }, + { + "type": "object", + "properties": { + "Value": { + "$ref": "#/components/schemas/ContextualLinkPurpose" + } + }, + "required": [ + "Value" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "oa", + "sa" + ], + "additionalProperties": false + }, + "OccurrenceEndpoint": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Id" + }, + "maxItems": 64 + }, + "occurrence": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "references", + "occurrence" + ], + "additionalProperties": false, + "description": "Ordered reference-occurrence IDs in an explicit caller owner, followed by the leaf contribution ID. Empty references means a direct contribution; sequence definition IDs are not path components." + }, + "ContextualLinkPurpose": { + "oneOf": [ + { + "type": "object", + "properties": { + "Precedence": { + "type": "object", + "properties": { + "guard": { + "type": "string" + } + }, + "required": [ + "guard" + ], + "additionalProperties": false + } + }, + "required": [ + "Precedence" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Exchange": { + "type": "object", + "properties": { + "exchange": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "exchange" + ], + "additionalProperties": false + } + }, + "required": [ + "Exchange" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CommonWork": { + "type": "object", + "properties": { + "work": { + "$ref": "#/components/schemas/Id" + } + }, + "required": [ + "work" + ], + "additionalProperties": false + } + }, + "required": [ + "CommonWork" + ], + "additionalProperties": false + } + ] + }, + "OperationUse": { + "type": "object", + "properties": { + "allocation": { + "anyOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "type": "null" + } + ] + } + }, + "required": [], + "additionalProperties": false, + "description": "Present with absent/null allocation retains unresolved operation intent. A selected UUID identifies exactly an InterfaceItemAllocation, never an item, port, or name. Reply derives operation from its exact correlated Call." + }, + "OperationOmission": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Id" + }, + "rationale": { + "type": "string" + } + }, + "required": [ + "source", + "rationale" + ], + "additionalProperties": false + } + } + } +} diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/03.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/03.request.http new file mode 100644 index 00000000..55e94b1a --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/03.request.http @@ -0,0 +1,7 @@ +POST /api/v1/projects/import-source-project HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close +Content-Type: application/json +Content-Length: 328 + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA original\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/03.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/03.response.http new file mode 100644 index 00000000..8ac2331d --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/03.response.http @@ -0,0 +1,11 @@ +HTTP/1.1 201 Created +content-type: application/json +etag: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r1" +location: /api/v1/projects/0447f8e0-401b-4e47-ab77-97bcedeec90e +x-request-id: 98ddb792-efa4-4029-939d-ed33e40b242b +cache-control: no-cache +content-length: 209 +connection: close +date: Fri, 02 Oct 2026 00:53:33 GMT + +{"elements":1,"migration":null,"model_id":"93200000-0000-4000-8000-000000000001","name":"Package QA original","relations":0,"resource_id":"0447f8e0-401b-4e47-ab77-97bcedeec90e","revision":1,"schema_version":7} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/04.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/04.request.http new file mode 100644 index 00000000..53b31c0c --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/04.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/0447f8e0-401b-4e47-ab77-97bcedeec90e HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/04.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/04.response.http new file mode 100644 index 00000000..22b7bde5 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/04.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r1" +x-request-id: 5d993dfc-9361-4d61-80d2-278dbd78d244 +cache-control: no-cache +content-length: 819 +connection: close +date: Fri, 02 Oct 2026 00:53:33 GMT + +{"resource_id":"0447f8e0-401b-4e47-ab77-97bcedeec90e","revision":1,"model":{"schema_version":7,"id":"93200000-0000-4000-8000-000000000001","alias":"package_qa","name":"Package QA original","description":"","elements":{"93200000-0000-4000-8000-000000000002":{"id":"93200000-0000-4000-8000-000000000002","alias":"inspect_package","name":"Inspect package","description":"","parent":null,"body":{"Oa":"Activity"}}},"relations":{},"diagrams":{},"artifact_links":{},"traces":{}},"source_project":{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA original\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/05.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/05.request.http new file mode 100644 index 00000000..3100d895 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/05.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/0447f8e0-401b-4e47-ab77-97bcedeec90e/source-project HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/05.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/05.response.http new file mode 100644 index 00000000..772ccbe3 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/05.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r1" +x-request-id: 6d2d6baa-59c1-45df-85b3-4ac241b912cf +cache-control: no-cache +content-length: 328 +connection: close +date: Fri, 02 Oct 2026 00:53:33 GMT + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA original\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/06.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/06.request.http new file mode 100644 index 00000000..335ed11a --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/06.request.http @@ -0,0 +1,8 @@ +PUT /api/v1/projects/0447f8e0-401b-4e47-ab77-97bcedeec90e/source-project HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close +Content-Type: application/json +Content-Length: 326 +If-Match: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r1" + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/06.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/06.response.http new file mode 100644 index 00000000..0e9ba8b1 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/06.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r2" +x-request-id: c0844652-0b7c-4e03-a281-1adf78519638 +cache-control: no-cache +content-length: 968 +connection: close +date: Fri, 02 Oct 2026 00:53:33 GMT + +{"changed":true,"issues":[{"code":"unallocated_leaf","column":5,"field":"allocation","line":4,"message":"Allocate leaf 'Inspect package' to a performer.","object_id":"93200000-0000-4000-8000-000000000002","path":"model.arcadia","severity":"warning","span":{"end":249,"start":159}},{"code":"work_without_behavior_context","column":5,"line":4,"message":"Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.","object_id":"93200000-0000-4000-8000-000000000002","path":"model.arcadia","severity":"warning","span":{"end":249,"start":159}}],"migration":null,"revision":2,"source_project":{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/07.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/07.request.http new file mode 100644 index 00000000..f65d41d8 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/07.request.http @@ -0,0 +1,8 @@ +PUT /api/v1/projects/0447f8e0-401b-4e47-ab77-97bcedeec90e/source-project HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close +Content-Type: application/json +Content-Length: 331 +If-Match: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r1" + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"STALE MUST NOT PERSIST\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/07.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/07.response.http new file mode 100644 index 00000000..a26dec8f --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/07.response.http @@ -0,0 +1,9 @@ +HTTP/1.1 412 Precondition Failed +content-type: application/problem+json +x-request-id: 9d600397-db1c-4b1b-a8aa-d261f849f15e +cache-control: no-cache +content-length: 220 +connection: close +date: Fri, 02 Oct 2026 00:53:33 GMT + +{"type":"urn:arcadia:problem:revision_conflict","title":"Precondition Failed","status":412,"code":"revision_conflict","detail":"Project changed. Reload and review the current model before retrying.","current_revision":2} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/08.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/08.request.http new file mode 100644 index 00000000..53b31c0c --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/08.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/0447f8e0-401b-4e47-ab77-97bcedeec90e HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/08.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/08.response.http new file mode 100644 index 00000000..8bb928d4 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/08.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r2" +x-request-id: 45eb1002-3b15-47cd-95bb-fc22eb9923bf +cache-control: no-cache +content-length: 815 +connection: close +date: Fri, 02 Oct 2026 00:53:33 GMT + +{"resource_id":"0447f8e0-401b-4e47-ab77-97bcedeec90e","revision":2,"model":{"schema_version":7,"id":"93200000-0000-4000-8000-000000000001","alias":"package_qa","name":"Package QA edited","description":"","elements":{"93200000-0000-4000-8000-000000000002":{"id":"93200000-0000-4000-8000-000000000002","alias":"inspect_package","name":"Inspect package","description":"","parent":null,"body":{"Oa":"Activity"}}},"relations":{},"diagrams":{},"artifact_links":{},"traces":{}},"source_project":{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/09.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/09.request.http new file mode 100644 index 00000000..9e5ad24a --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/09.request.http @@ -0,0 +1,4 @@ +GET /health/ready HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/09.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/09.response.http new file mode 100644 index 00000000..7fa7ac11 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/09.response.http @@ -0,0 +1,9 @@ +HTTP/1.1 200 OK +content-type: application/json +x-request-id: 948dc8d8-8609-4b62-a8d8-d136476bccaa +cache-control: no-cache +content-length: 15 +connection: close +date: Fri, 02 Oct 2026 00:53:34 GMT + +{"status":"ok"} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/10.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/10.request.http new file mode 100644 index 00000000..53b31c0c --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/10.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/0447f8e0-401b-4e47-ab77-97bcedeec90e HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/10.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/10.response.http new file mode 100644 index 00000000..d4f24068 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/10.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r2" +x-request-id: e137bb48-f28f-4ef5-8df1-72beccc4b236 +cache-control: no-cache +content-length: 815 +connection: close +date: Fri, 02 Oct 2026 00:53:34 GMT + +{"resource_id":"0447f8e0-401b-4e47-ab77-97bcedeec90e","revision":2,"model":{"schema_version":7,"id":"93200000-0000-4000-8000-000000000001","alias":"package_qa","name":"Package QA edited","description":"","elements":{"93200000-0000-4000-8000-000000000002":{"id":"93200000-0000-4000-8000-000000000002","alias":"inspect_package","name":"Inspect package","description":"","parent":null,"body":{"Oa":"Activity"}}},"relations":{},"diagrams":{},"artifact_links":{},"traces":{}},"source_project":{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/11.request.http b/harness/experiments/compact-help-20261001/package/server-smoke/11.request.http new file mode 100644 index 00000000..3100d895 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/11.request.http @@ -0,0 +1,4 @@ +GET /api/v1/projects/0447f8e0-401b-4e47-ab77-97bcedeec90e/source-project HTTP/1.1 +Host: 127.0.0.1:54695 +Connection: close + diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/11.response.http b/harness/experiments/compact-help-20261001/package/server-smoke/11.response.http new file mode 100644 index 00000000..bc535803 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/11.response.http @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +content-type: application/json +etag: "p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r2" +x-request-id: 3df3711e-1fb5-48e3-9ee6-c41cf499f1b6 +cache-control: no-cache +content-length: 326 +connection: close +date: Fri, 02 Oct 2026 00:53:34 GMT + +{"entry":"model.arcadia","files":{"model.arcadia":"arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n"}} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/accepted-envelope.json b/harness/experiments/compact-help-20261001/package/server-smoke/accepted-envelope.json new file mode 100644 index 00000000..eed79418 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/accepted-envelope.json @@ -0,0 +1,33 @@ +{ + "resource_id": "0447f8e0-401b-4e47-ab77-97bcedeec90e", + "revision": 2, + "model": { + "schema_version": 7, + "id": "93200000-0000-4000-8000-000000000001", + "alias": "package_qa", + "name": "Package QA edited", + "description": "", + "elements": { + "93200000-0000-4000-8000-000000000002": { + "id": "93200000-0000-4000-8000-000000000002", + "alias": "inspect_package", + "name": "Inspect package", + "description": "", + "parent": null, + "body": { + "Oa": "Activity" + } + } + }, + "relations": {}, + "diagrams": {}, + "artifact_links": {}, + "traces": {} + }, + "source_project": { + "entry": "model.arcadia", + "files": { + "model.arcadia": "arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa \"Package QA edited\" id \"93200000-0000-4000-8000-000000000001\" {\r\n oa_activity inspect_package \"Inspect package\" id \"93200000-0000-4000-8000-000000000002\" {}\r\n}\r\n" + } + } +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/edited.arcadia b/harness/experiments/compact-help-20261001/package/server-smoke/edited.arcadia new file mode 100644 index 00000000..0bc7ebbb --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/edited.arcadia @@ -0,0 +1,5 @@ +arcadia 7; +// Package QA authored comment — preserve exactly. +project package_qa "Package QA edited" id "93200000-0000-4000-8000-000000000001" { + oa_activity inspect_package "Inspect package" id "93200000-0000-4000-8000-000000000002" {} +} diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/first.stderr.log b/harness/experiments/compact-help-20261001/package/server-smoke/first.stderr.log new file mode 100644 index 00000000..6bde3005 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/first.stderr.log @@ -0,0 +1 @@ +arcadia-server 0.2.0 listening on 127.0.0.1:54695; data C:\ar-compact-01a0d717\.local\package39\server-smoke\store diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/first.stdout.log b/harness/experiments/compact-help-20261001/package/server-smoke/first.stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/help.stderr.txt b/harness/experiments/compact-help-20261001/package/server-smoke/help.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/help.stdout.txt b/harness/experiments/compact-help-20261001/package/server-smoke/help.stdout.txt new file mode 100644 index 00000000..828690d7 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/help.stdout.txt @@ -0,0 +1,7 @@ +Arcadia model REST service + +Usage: arcadia-server [--bind IP:PORT] [--data-dir PATH] [--token-file PATH] + +Defaults: 127.0.0.1:8787; platform-local ArcadiaStudio/server directory. +Token required for non-loopback binds. ARCADIA_SERVER_TOKEN is an alternative. +Keep the data directory on local storage. See docs/server.md for deployment and API limits. diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/original.arcadia b/harness/experiments/compact-help-20261001/package/server-smoke/original.arcadia new file mode 100644 index 00000000..37d61f4c --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/original.arcadia @@ -0,0 +1,5 @@ +arcadia 7; +// Package QA authored comment — preserve exactly. +project package_qa "Package QA original" id "93200000-0000-4000-8000-000000000001" { + oa_activity inspect_package "Inspect package" id "93200000-0000-4000-8000-000000000002" {} +} diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/package-provenance.json b/harness/experiments/compact-help-20261001/package/server-smoke/package-provenance.json new file mode 100644 index 00000000..b3bcf5f2 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/package-provenance.json @@ -0,0 +1,685 @@ +{ + "version": "0.2.0-preview.compact-help.20261001", + "target": "x86_64-pc-windows-gnullvm", + "acceptance": "Packaging integrity only; native clean-environment verification required.", + "build": "Prebuilt inputs supplied by caller; this script does not establish build profile or source revision.", + "build_evidence": { + "assertion": "Caller-supplied build evidence; target and binary hashes checked, source/compiler/profile statements not inferred or independently proven by packaging.", + "evidence": { + "source_identity": "Desktop: 6e7c4ddaf0775198384a8c4882809ea8e14b2976; unchanged reused server: 715036e132677dd2bc2fb37ed316d93dc9987aec; package documentation: ea23e229260d7d050b3c3b88e77c3a851e936abe", + "profile": "dev, unoptimized, debug assertions enabled", + "compiler": "rustc 1.98.1 (48a229cea 2026-09-01)", + "target": "x86_64-pc-windows-gnullvm", + "binary_sha256": { + "arcadia-studio.exe": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237" + }, + "binary_origins": { + "arcadia-studio.exe": { + "source": "6e7c4ddaf0775198384a8c4882809ea8e14b2976", + "build_command": "cargo build --locked -p oa-desktop --bin arcadia-studio", + "evidence": "harness/experiments/compact-help-20260925/candidate-6e7c/build.log", + "native_evidence": "harness/compact-help-validation-20261001.md" + }, + "arcadia-server.exe": { + "source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "reuse": true, + "release": "v0.2.0-preview.integrated.20260924", + "original_build_evidence": { + "source_identity": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "profile": "dev", + "target": "x86_64-pc-windows-gnullvm", + "compiler": "rustc 1.98.1 (48a229cea 2026-09-01)", + "binary_sha256": { + "arcadia-studio.exe": "2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237" + }, + "mandatory_gate": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\summary.json", + "bytes": 10594, + "sha256": "8b655c429b4abdeec0476a8397565fcd07682642f1d7b87e9a0c4eec63e22fc9" + }, + "source_manifest": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\inputs-before.json", + "bytes": 1740725, + "sha256": "38e4f7d37b67b06b7991d48560c5bd56ec5893909f3cffd224442d15bdc35f88" + }, + "environment": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\environment.json", + "bytes": 8981, + "sha256": "d9d89bc52a9312044e277f92b1585350fc86d5cc963dd91a39c669bc6ca2f39f" + }, + "artifact_relocation": { + "path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\prerelease-gates-v2-20260924\\final-04\\artifact-relocation.json", + "bytes": 6181, + "sha256": "3298225b9890aab1a8029a4d6dff42a8162f8d77f2c71bcdd379d25ebcb1f9d6" + }, + "scope": "Exact preserved CargoJSON-identified individual product builds from final04; supplemental combined build is separately recorded. Native/package acceptance is separate." + }, + "unchanged_input_check": "git diff --exit-code 715036e132677dd2bc2fb37ed316d93dc9987aec ea23e229260d7d050b3c3b88e77c3a851e936abe -- crates/oa-core crates/oa-server Cargo.toml Cargo.lock" + } + }, + "package_documentation_source": "ea23e229260d7d050b3c3b88e77c3a851e936abe", + "runtime_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "acceptance_scope": "Contribution gates and prior released-server evidence are separate from fresh packaged desktop/server checks; this is an unfinished Windows development preview, not complete OA/SA acceptance." + } + }, + "imports": { + "arcadia-studio.exe": [ + "advapi32.dll", + "api-ms-win-core-synch-l1-2-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-math-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "bcrypt.dll", + "bcryptprimitives.dll", + "dwmapi.dll", + "gdi32.dll", + "imm32.dll", + "kernel32.dll", + "libunwind.dll", + "ntdll.dll", + "ole32.dll", + "oleaut32.dll", + "opengl32.dll", + "shell32.dll", + "user32.dll", + "uxtheme.dll", + "ws2_32.dll" + ], + "arcadia-server.exe": [ + "api-ms-win-core-synch-l1-2-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-math-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "bcryptprimitives.dll", + "kernel32.dll", + "libunwind.dll", + "ntdll.dll", + "ws2_32.dll" + ], + "libunwind.dll": [ + "api-ms-win-crt-convert-l1-1-0.dll", + "api-ms-win-crt-environment-l1-1-0.dll", + "api-ms-win-crt-filesystem-l1-1-0.dll", + "api-ms-win-crt-heap-l1-1-0.dll", + "api-ms-win-crt-locale-l1-1-0.dll", + "api-ms-win-crt-private-l1-1-0.dll", + "api-ms-win-crt-runtime-l1-1-0.dll", + "api-ms-win-crt-stdio-l1-1-0.dll", + "api-ms-win-crt-string-l1-1-0.dll", + "kernel32.dll" + ] + }, + "input_sha256": { + "arcadia-studio.exe": "d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e", + "arcadia-server.exe": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237", + "libunwind.dll": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4", + "licenses/llvm-mingw-LICENSE.TXT": "8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee", + "LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "README.md": "597cfb8da873e019d2658420f18ec059f0185fa9106ff9eafe934dfdd6ed266b", + "deployment/Dockerfile": "72c04aef4ec879955ed3bdf315987553d018ef46e4b8f350f0f6fe380c453eb7", + "deployment/Dockerfile.dockerignore": "6bb7d7496110b11a531cb8cd923864c6610850a8f1c4de8a797f54c7156f29e1", + "deployment/arcadia-server.service": "1e6c6bb4065e25f8fe1d558a4ed0bbd4844782a4377c2482488db1e6f9cab01d", + "docs/api.html": "d06e32b3da838e519630a4151111bb40a383ccf294eb18443118a7498700a993", + "docs/api.rst": "d78f138d011dd0af28bd53a65d1d93381d031f680191779d4f3030a264eb2e74", + "docs/language.html": "77c14e548f5d2deea0c21a3a931347e1c87449f5be8503f6c51ceaef37be9a33", + "docs/language.rst": "7117a66e16b34cd6ce033532e984c7ca49b4611e296fb1c46c5f737fe9169ec6", + "docs/linux-packaging.md": "41a1bb1095801df37a1411341c5791d55ea8c365739314d599a60269ac4bc7a0", + "docs/openapi.json": "2ad69da52fb574435525990c906948ce54b1efd9247cdde8726969f382731790", + "docs/preview-human-checks.md": "50b56c328c22587e1187f6e614bc914210095cf635c301f335e82de11201b890", + "docs/research-v2-service.md": "4828df5bc679e7c71f49b4b85c9e7dacbec52f46d416fed48af70e08886d4e4e", + "docs/server.md": "4eb24937d424ba8b384e1734e02a6f8e963ae11d2715889c92b14b39ff2e4a48", + "docs/windows-packaging.md": "2d5ef8a9a8741e6e7f6df9db9fd9a839f806ea782a6f2063c3a98725ecfd36b6", + "examples/coastal-rescue.arcadia": "7e183ef9fd8154d3074303f1956cd0d9871c19e3ffc630d333b0bffbd6e30e17", + "examples/coastal-rescue.json": "242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195", + "examples/legacy-v1-coastal-rescue.arcadia": "4dbbbdf8bc7e6cb8e0a81dd678069dae585a9e5187c59bc3665e1fdab3f1a86a", + "examples/legacy-v1-coastal-rescue.oa.json": "fd0e9dedfb7adb922dc0575cc2b820d40344d639f1d8052bd70363aa59de9c24", + "examples/release1/README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5", + "examples/release1/evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5", + "examples/release1/expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e", + "examples/release1/model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727", + "examples/release1/model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe", + "examples/release1/oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f", + "examples/release1/oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a", + "examples/release1/oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96", + "examples/release1/oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84", + "examples/release1/oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b", + "examples/release1/oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5", + "examples/release1/oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6", + "examples/release1/oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a", + "examples/release1/oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada", + "examples/release1/oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819", + "examples/release1/oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d", + "examples/release1/project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda", + "examples/release1/sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d", + "examples/release1/sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2", + "examples/release1/sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52", + "examples/release1/sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2", + "examples/release1/sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda", + "examples/release1/sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8", + "examples/release1/sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645", + "examples/release1/sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686", + "examples/release1/sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c", + "examples/release1/sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395", + "examples/release1/sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84", + "examples/release1/sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064", + "examples/release1/traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116", + "examples/release1/transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d", + "examples/release1/transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a", + "examples/release1/views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624", + "examples/release1/views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6", + "examples/release1/views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2", + "examples/release1/views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c", + "examples/release1/views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230", + "examples/routing-workshop.arcadia": "dc6b75da72884d399132ed9e300fa5a26b73d802bb526c9af986ae9eeb0a646a", + "examples/routing-workshop.json": "8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14", + "examples/source-project/oa.arcadia": "5f60642f211b2d352a951092faeeb7503d4fb7f6f7fca99e810347231101d31c", + "examples/source-project/project.arcadia": "787f6b67b179ffd221f7e5faf1a4edd74cfd116aa1e3b5e9ed9f22fbff612d8d", + "examples/source-project/sa/assurance.arcadia": "ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f", + "examples/source-project/sa/participants.arcadia": "1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88", + "examples/source-project/sa/reporting.arcadia": "f0b7443f728912ca163de39b6055876b533a77feaa3219b2d40a2dd65712e058", + "examples/source-project/views.arcadia": "e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f", + "examples/text-first/README.md": "4ec8250d5ed556f1d496e8c85137e973e802ecb11df1a36488411e8cdc5a9f9e", + "examples/text-first/project.arcadia": "f441535c623e0cf20e1875eb2cd33b587ed00e078c37af39cb36d89bb5edc19a", + "licenses/dependencies/oa-core-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/oa-desktop-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/oa-server-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365", + "licenses/dependencies/iced_widget-0.14.2/ARCADIA-PATCH.md": "d3acb98e5f423970b0bf4198373efddaea6f3a51aa282da571cf95c0f5690504", + "licenses/dependencies/iced_widget-0.14.2/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/arrayref-0.3.9/LICENSE": "1bc7e6f475b3ec99b7e2643411950ae2368c250dd4c5c325f80f9811362a94a1", + "licenses/dependencies/arrayvec-0.7.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/arrayvec-0.7.8/LICENSE-MIT": "4da95ec4ecb65b738d470b7d762894ad9c97da93e6cbfb18b570fc2c96f4b871", + "licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-APACHE": "0e8a410375e1ee5c75c6198b08b534fec6e5edef766cf971bab4a404542636ab", + "licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-MIT": "c733ccf8ab25df175a63d9d844677b98e3a5ab8f8de1c1616087e6868a7f948e", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY": "6226d0632e2e1a80c23597e964da9812ae193c535fe058154afb034e94167aa5", + "licenses/dependencies/autocfg-1.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/autocfg-1.5.1/LICENSE-MIT": "27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac", + "licenses/dependencies/axum-core-0.5.6/LICENSE": "008c87afcd2e626eaf564093250bed06dd7efb5732113264bba3dda8f1c556a1", + "licenses/dependencies/axum-0.8.9/LICENSE": "6a13bc24a100a6812f053879ec51b126b103af7cda6dbf48c4188722da44da9f", + "licenses/dependencies/base64-0.22.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/base64-0.22.1/LICENSE-MIT": "0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7", + "licenses/dependencies/bit-set-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/bit-set-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7", + "licenses/dependencies/bit-vec-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/bit-vec-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7", + "licenses/dependencies/bitflags-2.13.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/bitflags-2.13.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2", + "licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2", + "licenses/dependencies/bytemuck-1.25.2/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/bytes-1.12.1/LICENSE": "45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42", + "licenses/dependencies/cc-1.4.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cc-1.4.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/cfg_aliases-0.2.2/LICENSE": "31b94860253d8ec7b4529f51901044d3b459d6292d996504a36b1bae3a36a812", + "licenses/dependencies/cfg-if-1.0.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cfg-if-1.0.4/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/chacha20-0.10.2/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5", + "licenses/dependencies/chacha20-0.10.2/LICENSE-MIT": "b8c6939380a400f53e11923d50fcc4dd2fa1ba8339fd9d04cda38a0251b6c9b0", + "licenses/dependencies/clipboard-win-5.4.1/supplement/DoumanAsh-clipboard-win-3b27cf2bfd1a-LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/codespan-reporting-0.12.0/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/core_maths-0.1.1/LICENSE": "9ebf8c4cc0b735ca13a766451f7b8097db3185975ceb2ba94b5abf439156a91f", + "licenses/dependencies/cosmic-text-0.15.0/fonts/FiraMono-LICENSE": "587dd9548304fd421cd254f7550bd101c1250ffc95417f2f7f92d55b44ecbe53", + "licenses/dependencies/cosmic-text-0.15.0/fonts/Inter-LICENSE": "3c8d13d97ea5eb62868833a377034c6be6a9833e768d32abec2a767a8101e4bc", + "licenses/dependencies/cosmic-text-0.15.0/fonts/NotoSans-LICENSE": "5ec4347054089def6904da61d04f0360968f9ef36634b1fe007a5b6ec2f7aa96", + "licenses/dependencies/cosmic-text-0.15.0/LICENSE-APACHE": "000b4962e6b27176a0ff89cce4be555b16472cafb5671eb2804a8fdac6854793", + "licenses/dependencies/cosmic-text-0.15.0/LICENSE-MIT": "95557bafe728379e206f3b6d4aceeaa054d271c71d722411a6222e2dec01138c", + "licenses/dependencies/cpufeatures-0.3.1/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5", + "licenses/dependencies/cpufeatures-0.3.1/LICENSE-MIT": "73b9dc2e79c7308998dd30296e073aefaefb944a68fb89aa412c23c0edcabcaa", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/cryoglyph-0.1.0/LICENSE-ZLIB": "b3ec01ad0869c5c50937bc68780cd0bb44e235ad858dfa54a7a381dced9b115a", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-APACHE": "b59affd015e517ed998dd735757f9a3693643cd389609947ed54074234a10784", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-MIT": "c138726a726ac37bae09d0f8a48e74e8e3aa8a8952fcd10fae0fb224cc1c05f1", + "licenses/dependencies/cursor-icon-1.2.0/LICENSE-ZLIB": "01e533bd94e8f1c32b2c2531e2c398de7d35d7804add3d574b4e1fe581d53537", + "licenses/dependencies/displaydoc-0.2.7/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/displaydoc-0.2.7/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/document-features-0.2.12/LICENSE-APACHE": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff", + "licenses/dependencies/document-features-0.2.12/LICENSE-MIT": "aa893340d14b9844625be6a50ac644169a01b52f0211cbf81b09e1874c8cd81d", + "licenses/dependencies/dpi-0.1.2/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a", + "licenses/dependencies/dpi-0.1.2/LICENSE-LIBM-MIT": "9eff396a99bafd208e7126602420d6864f6066c08b84485a5b032320a9c01997", + "licenses/dependencies/equivalent-1.0.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/equivalent-1.0.2/LICENSE-MIT": "7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349", + "licenses/dependencies/error-code-3.4.0/LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/etagere-0.2.15/LICENSE-APACHE": "2d56a37f3d1e461f6b1539ab94e0e6bcc55443e376098aee85ac3b2890860290", + "licenses/dependencies/etagere-0.2.15/LICENSE-MIT": "9cfc9c9a4608501b5da3746948d2be2dd709ad51f6bcb0c1c685760ee3dde31f", + "licenses/dependencies/euclid-0.22.14/COPYRIGHT": "ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a", + "licenses/dependencies/euclid-0.22.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/euclid-0.22.14/LICENSE-MIT": "62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3", + "licenses/dependencies/fastrand-2.5.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/fastrand-2.5.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/float_next_after-1.0.0/LICENSE": "0604d5817110dacc5c7d9b7de6b58b962794603d4823c357157bd5dec4198bc5", + "licenses/dependencies/foldhash-0.1.5/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744", + "licenses/dependencies/foldhash-0.2.0/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744", + "licenses/dependencies/font-types-0.10.1/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/font-types-0.10.1/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/font-types-0.12.4/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/font-types-0.12.4/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/fontdb-0.23.0/LICENSE": "59a1fdac3bd550043599bd159fd70f09a1108c2b09e3751d39b11e1ff8e51f00", + "licenses/dependencies/fontdb-0.23.0/tests/fonts/LICENSE.txt": "b84fdd2c3da5db56385cdbb639795e90aa3e035c53bc3591135f18df3331451f", + "licenses/dependencies/form_urlencoded-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/form_urlencoded-1.2.2/LICENSE-MIT": "20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e", + "licenses/dependencies/futures-channel-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-channel-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-core-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-core-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-executor-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-executor-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-io-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-io-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-macro-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-macro-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-sink-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-sink-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-task-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-task-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-util-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-util-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/futures-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427", + "licenses/dependencies/futures-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd", + "licenses/dependencies/getrandom-0.2.17/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf", + "licenses/dependencies/getrandom-0.2.17/LICENSE-MIT": "42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737", + "licenses/dependencies/getrandom-0.4.3/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf", + "licenses/dependencies/getrandom-0.4.3/LICENSE-MIT": "523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b", + "licenses/dependencies/gl_generator-0.14.0/supplement/brendanzab-gl-rs-ea503e8d5fb6-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/glam-0.25.0/LICENSE-APACHE": "be33ddb87a30fd321ab100e2d922cba512e50ec7a63d8e62e5bfc0798dd4b585", + "licenses/dependencies/glam-0.25.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/glow-0.16.0/LICENSE-APACHE": "b8601fc79bdf8d8088f0938bea861ffc63ed0eebbedf25f44ab2cf2e85bd7edc", + "licenses/dependencies/glow-0.16.0/LICENSE-MIT": "cdbd06e25b8c9c5d6019949d2de8123f56d29cee4166396423d2ba8c81700845", + "licenses/dependencies/glow-0.16.0/LICENSE-ZLIB": "636f644f1e149eb62961657c0e34953681eff64435653912e7bd19992666faa5", + "licenses/dependencies/glutin_wgl_sys-0.6.1/LICENSE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4", + "licenses/dependencies/gpu-alloc-types-0.3.1/supplement/zakarumych-gpu-alloc-7ddd1fe576fc-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314", + "licenses/dependencies/gpu-alloc-0.6.2/supplement/zakarumych-gpu-alloc-61020bdcb4eb-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314", + "licenses/dependencies/gpu-allocator-0.27.0/LICENSE-APACHE": "0178e21322b0e88aa3aeb3146f6a9611bc1f8df6d98bdfb34be28b9dd56a8107", + "licenses/dependencies/gpu-allocator-0.27.0/LICENSE-MIT": "ad41be6cc6538b29b9346648f41432b5e460bad6be073b5eeaa41320ea2921dc", + "licenses/dependencies/gpu-descriptor-types-0.2.0/supplement/zakarumych-gpu-descriptor-9f2fb9546591-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613", + "licenses/dependencies/gpu-descriptor-0.3.2/supplement/zakarumych-gpu-descriptor-bb28b4e55b74-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613", + "licenses/dependencies/guillotiere-0.6.2/LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1", + "licenses/dependencies/half-2.7.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/half-2.7.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1", + "licenses/dependencies/harfrust-0.3.2/LICENSE": "7d43d2ef1ce976c7bfb423c696ad9938ccfc31e9ec5be752265e43fe9d29f697", + "licenses/dependencies/harfrust-0.3.2/scripts/ms-use/COPYING": "9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b", + "licenses/dependencies/hashbrown-0.15.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.15.5/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hashbrown-0.16.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.16.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hashbrown-0.17.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hashbrown-0.17.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2", + "licenses/dependencies/hexf-parse-0.2.1/supplement/CC0-1.0.txt": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499", + "licenses/dependencies/hexf-parse-0.2.1/supplement/hexf-parse-0.2.1-Cargo.toml": "4a56dbdbc12054fd33b7a2634a45cbbe6fe12f5e6f4081002cbfa527f7220c70", + "licenses/dependencies/http-body-util-0.1.5/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab", + "licenses/dependencies/http-body-1.1.0/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab", + "licenses/dependencies/http-1.5.0/LICENSE-APACHE": "8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a", + "licenses/dependencies/http-1.5.0/LICENSE-MIT": "dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff", + "licenses/dependencies/httparse-1.10.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/httparse-1.10.1/LICENSE-MIT": "391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3", + "licenses/dependencies/httpdate-1.0.3/LICENSE-APACHE": "4d10fe5f3aa176b05b229a248866bad70b834c173f1252a814ff4748d8a13837", + "licenses/dependencies/httpdate-1.0.3/LICENSE-MIT": "934887691e05d69d7c86ad3f2c360980fa30c15b035e351f3c9865e99da4debc", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4", + "licenses/dependencies/hyper-rustls-0.27.9/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c", + "licenses/dependencies/hyper-util-0.1.20/LICENSE": "9e0a97848ea543aef745c98e84fde696a9a3e0735538f6daefdd3cb1942effc1", + "licenses/dependencies/hyper-1.11.1/LICENSE": "2d01890414494742ba4a509fcec8efa40f6d8be22cbd72be7cff08d6fda4ec89", + "licenses/dependencies/iced_core-0.14.0/src/layout/DRUID_LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/iced_core-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_debug-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_futures-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/Fira-OFL.txt": "99bfb7c1e845b79d1031fcf37e678178eb4a8c7cc74a3f218ddf7223083a6fcd", + "licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/FiraSans-Regular-NOTICE.txt": "1e0baaa389b1647d06322ac9ea37822f31995408200ae5a2805a6b9bea0810d1", + "licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/Iced-Icons-NOTICE.txt": "8175634e30f84ef72a24c4965fb0e87f45a3c1274cc0e79e0473af582cffd1c4", + "licenses/dependencies/iced_program-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_renderer-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_runtime-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_tiny_skia-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_wgpu-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced_winit-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/iced-0.14.0/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398", + "licenses/dependencies/icu_collections-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_locale_core-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_normalizer_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_normalizer-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_properties_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_properties-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/icu_provider-2.3.1/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/idna_adapter-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/idna_adapter-1.2.2/LICENSE-MIT": "8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726", + "licenses/dependencies/idna-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/idna-1.1.0/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/indexmap-2.14.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/indexmap-2.14.1/LICENSE-MIT": "ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055", + "licenses/dependencies/ipnet-2.12.1/LICENSE-APACHE": "87d9feb9238c6bd8e0024fc4733b06cff036f89f36d93b7df1c8a0549bbb7a5b", + "licenses/dependencies/ipnet-2.12.1/LICENSE-MIT": "47dc9ff29128ddfb4d6a0435383c9f89120bc374dbcc1dd00b933a0b28aa7865", + "licenses/dependencies/itoa-1.0.18/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/itoa-1.0.18/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/jobserver-0.1.35/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/jobserver-0.1.35/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/khronos_api-3.1.0/supplement/brendanzab-gl-rs-f150967b1c44-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/khronos-egl-6.0.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/khronos-egl-6.0.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/kurbo-0.10.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/kurbo-0.10.4/LICENSE-MIT": "23c23145f6eac25c28cdcc03d38506a5712a9a8cffb5bd5301457f6173ea696e", + "licenses/dependencies/libc-0.2.189/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/libc-0.2.189/LICENSE-MIT": "123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e", + "licenses/dependencies/libloading-0.8.9/LICENSE": "b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f", + "licenses/dependencies/libm-0.2.16/LICENSE.txt": "3823dda7cf046602f4b4e77ec8e227863dc4736037cc85bb33d9f19febe16bb7", + "licenses/dependencies/lilt-0.8.2/LICENSE": "120b2f21f9b9f98ef4159de09f9a55a3afb6733dd1c0b1d9eeec7f136465b2cd", + "licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1", + "licenses/dependencies/litemap-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/litrs-1.0.0/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/litrs-1.0.0/LICENSE-MIT": "7dc1552e88f49132cb358b1b962fc5e79fa42d70bcbb88c526d33e45b8e98036", + "licenses/dependencies/lock_api-0.4.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/lock_api-0.4.14/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/log-0.4.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/log-0.4.34/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-MIT": "1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486", + "licenses/dependencies/lru-slab-0.1.2/LICENSE-ZLIB": "09785877275ffada6c371b652a30e95c26b435126fc0fc62f1bc2d72171f80a4", + "licenses/dependencies/lru-0.16.4/LICENSE": "061dc50af2cd9340703daf61978af3200cf681b12ea67a323c33ba109a23a45e", + "licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06", + "licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e", + "licenses/dependencies/matchit-0.8.4/LICENSE": "de701d0618d694feb1af90f02181a1763d9b0bdeb70a3a592781e529077dba65", + "licenses/dependencies/matchit-0.8.4/LICENSE.httprouter": "162ce11ad71338d0a0c6ebaf5c48af72c6ae237b468859d3656fe2d9ed3f3a85", + "licenses/dependencies/memchr-2.8.3/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/memchr-2.8.3/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f", + "licenses/dependencies/memchr-2.8.3/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/memmap2-0.9.11/LICENSE-APACHE": "04ea4849dba9dcae07113850c6f1b1a69052c625210639914eee352023f750ad", + "licenses/dependencies/memmap2-0.9.11/LICENSE-MIT": "0d25d03b5ab49576178ad0cae7a2648d12c17ad0452fe49c07e55e4b59aa5257", + "licenses/dependencies/mime-0.3.17/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/mime-0.3.17/LICENSE-MIT": "df9cfd06d8a44d9a671eadd39ffd97f166481da015a30f45dfd27886209c5922", + "licenses/dependencies/mio-1.2.3/LICENSE": "07919255c7e04793d8ea760d6c2ce32d19f9ff02bdbdde3ce90b1e1880929a9b", + "licenses/dependencies/naga-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/naga-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/num-bigint-0.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-bigint-0.5.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/num-integer-0.1.47/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-integer-0.1.47/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/num-traits-0.2.19/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/num-traits-0.2.19/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb", + "licenses/dependencies/once_cell-1.21.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/once_cell-1.21.4/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/ordered-float-5.5.0/LICENSE-MIT": "f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4", + "licenses/dependencies/parking_lot_core-0.9.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/parking_lot_core-0.9.12/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/parking_lot-0.12.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/parking_lot-0.12.5/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5", + "licenses/dependencies/percent-encoding-2.3.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/percent-encoding-2.3.2/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/pin-project-lite-0.2.17/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/pkg-config-0.3.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/pkg-config-0.3.34/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/potential_utf-0.1.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/presser-0.3.1/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90", + "licenses/dependencies/presser-0.3.1/LICENSE-MIT": "090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b", + "licenses/dependencies/proc-macro2-1.0.107/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/proc-macro2-1.0.107/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-APACHE": "10d30a673cd5e9349bdc02aeb48f14b3386d27d0da32df8f0a555d4aa16aa551", + "licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-MIT": "c8167fdeeed46d3f244d3f85c5bf998ce889343691c32be2c61a8bc4b5c08333", + "licenses/dependencies/quinn-proto-0.11.17/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-proto-0.11.17/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quinn-udp-0.5.15/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-udp-0.5.15/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quinn-0.11.11/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/quinn-0.11.11/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04", + "licenses/dependencies/quote-1.0.47/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/quote-1.0.47/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/rand_core-0.10.1/COPYRIGHT": "92b81db30f7ab6d693e0af5661a40d273ca1947e891123ed823924192c10cbc7", + "licenses/dependencies/rand_core-0.10.1/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51", + "licenses/dependencies/rand_core-0.10.1/LICENSE-MIT": "8b6e9feec03e7c9a5facb26855cecd31662bf989b636bcfe79521bdf8ac863f0", + "licenses/dependencies/rand_pcg-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5", + "licenses/dependencies/rand_pcg-0.10.2/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51", + "licenses/dependencies/rand_pcg-0.10.2/LICENSE-MIT": "2234e3cefee876aeb686ad89e978bdb07bf118a1186ab1cf161bcdf69d4b4f57", + "licenses/dependencies/rand-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5", + "licenses/dependencies/rand-0.10.2/LICENSE-APACHE": "35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab", + "licenses/dependencies/rand-0.10.2/LICENSE-MIT": "209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b", + "licenses/dependencies/range-alloc-0.1.5/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/range-alloc-0.1.5/LICENSE.MIT": "ba00052102ed87948bb8822d6e1c496260c83042887b22bb5caad922ec025a60", + "licenses/dependencies/rangemap-1.8.0/LICENSE-APACHE": "1c7745cc26c7294bc9dbc883bcd50700b99a8c0f4859bfce84ec555098ce1ab5", + "licenses/dependencies/rangemap-1.8.0/LICENSE-MIT": "29a4c3823ee29ee5a97c145574a1bac20629fd5e6708be1df0d25bab563e093c", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-APACHE.md": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-MIT.md": "9c5a80639a57c1c945570e7ebbca0706305849ce3c098021325cca9db2f7acc4", + "licenses/dependencies/raw-window-handle-0.6.2/LICENSE-ZLIB.md": "ae895c8576e682f310fb70d93d9f99b1dd82872094c54a8f6cdfe2ca5c2d6ecb", + "licenses/dependencies/read-fonts-0.35.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/read-fonts-0.35.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/read-fonts-0.41.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/read-fonts-0.41.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-MIT": "24b2f2eff5a7622e87162823e260f00c6dfbce0e26d585d3d28c785f1edc80ed", + "licenses/dependencies/reqwest-0.12.28/LICENSE-APACHE": "751963a8b88c0e3a9f27e98933079fbcf09b9998b2c13ac49c2e4d58444520d6", + "licenses/dependencies/reqwest-0.12.28/LICENSE-MIT": "47d4e1803702728e03d30f8a848ae2249ba274bbd9f8443e803f7924d83cd371", + "licenses/dependencies/rfd-0.15.4/LICENSE": "65fc947f4bac882a2cd104ef73c246b1b037059df9f2b3a58b7f77f0b9e56071", + "licenses/dependencies/ring-0.17.14/LICENSE": "b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a", + "licenses/dependencies/ring-0.17.14/LICENSE-BoringSSL": "005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d", + "licenses/dependencies/ring-0.17.14/LICENSE-other-bits": "f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f", + "licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-MIT": "6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc", + "licenses/dependencies/ring-0.17.14/third_party/fiat/LICENSE": "9eacbcb81be660840c714a560a9d65ba07913db98dd4baf969f78dd499fdd60f", + "licenses/dependencies/rustc-hash-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/rustc-hash-1.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/rustc-hash-2.1.3/LICENSE-APACHE": "95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc", + "licenses/dependencies/rustc-hash-2.1.3/LICENSE-MIT": "30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652", + "licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-APACHE": "45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742", + "licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-MIT": "9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639", + "licenses/dependencies/rustls-webpki-0.103.15/LICENSE": "5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a", + "licenses/dependencies/rustls-0.23.43/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/rustls-0.23.43/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4", + "licenses/dependencies/rustls-0.23.43/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c", + "licenses/dependencies/ryu-1.0.23/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/ryu-1.0.23/LICENSE-BOOST": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566", + "licenses/dependencies/same-file-1.0.6/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/same-file-1.0.6/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14", + "licenses/dependencies/same-file-1.0.6/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/scopeguard-1.2.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/scopeguard-1.2.0/LICENSE-MIT": "fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7", + "licenses/dependencies/self_cell-1.3.0/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/self_cell-1.3.0/LICENSE-GPLv2": "f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505", + "licenses/dependencies/serde_core-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_core-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_derive-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_derive-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_json-1.0.151/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_json-1.0.151/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-MIT": "b9eb266294324f672cbe945fe8f2e32f85024f0d61a1a7d14382cdde0ac44769", + "licenses/dependencies/serde-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/serde-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/sha1_smol-1.0.1/LICENSE": "282a21b0710441c364025461a447362daf18f5798a7b72ae2f801a2aa536da51", + "licenses/dependencies/shlex-2.0.1/LICENSE-APACHE": "553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583", + "licenses/dependencies/shlex-2.0.1/LICENSE-MIT": "4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1", + "licenses/dependencies/skrifa-0.37.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0", + "licenses/dependencies/skrifa-0.37.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434", + "licenses/dependencies/skrifa-0.44.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0", + "licenses/dependencies/skrifa-0.44.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427", + "licenses/dependencies/slab-0.4.12/LICENSE": "8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18", + "licenses/dependencies/slotmap-1.1.1/LICENSE": "6cec81441b2ab2b5090954c1fb5d0bcca81b86487b5849061fa8952d20ef67d4", + "licenses/dependencies/smallvec-1.16.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/smallvec-1.16.0/LICENSE-MIT": "0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9", + "licenses/dependencies/smol_str-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/smol_str-0.2.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/socket2-0.6.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/socket2-0.6.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397", + "licenses/dependencies/softbuffer-0.4.8/LICENSE-APACHE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4", + "licenses/dependencies/softbuffer-0.4.8/LICENSE-MIT": "0463bfa47d6d763d8c824333efb0e6d6df3946c13c3b077c78ed9f23ca50d0f2", + "licenses/dependencies/spirv-0.3.0+sdk-1.3.268.0/supplement/gfx-rs-rspirv-e91a5debc10c-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT": "5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7", + "licenses/dependencies/static_assertions-1.1.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/static_assertions-1.1.0/LICENSE-MIT": "ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061", + "licenses/dependencies/strict-num-0.1.1/LICENSE": "3085885678bb161f6c472bbd331f66a2550b555eb76128f7f8247779128199c0", + "licenses/dependencies/subtle-2.6.1/LICENSE": "d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b", + "licenses/dependencies/svg_fmt-0.4.5/supplement/nical-rust_debug-93f414cd572b-LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1", + "licenses/dependencies/swash-0.2.10/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/swash-0.2.10/LICENSE-MIT": "122dadfc2eb4de0f4bafcd9eb4e7502cfe338a7965ebd1d18708cc5050f43f76", + "licenses/dependencies/syn-2.0.119/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/syn-2.0.119/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/syn-3.0.5/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/syn-3.0.5/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/sync_wrapper-1.0.2/LICENSE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594", + "licenses/dependencies/synstructure-0.13.2/LICENSE": "219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59", + "licenses/dependencies/sys-locale-0.3.2/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/sys-locale-0.3.2/LICENSE-MIT": "5cc390ab5e5e6507f467368cbab1297552d64bfd863f4b496c7928508bcfefd8", + "licenses/dependencies/tempfile-3.27.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/tempfile-3.27.0/LICENSE-MIT": "8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36", + "licenses/dependencies/termcolor-1.4.1/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/termcolor-1.4.1/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f", + "licenses/dependencies/termcolor-1.4.1/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/thiserror-impl-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-impl-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-impl-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/thiserror-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/thiserror-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/tiny-skia-path-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced", + "licenses/dependencies/tiny-skia-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced", + "licenses/dependencies/tinystr-0.8.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md": "4f44572785f35152c1fd2eadf565b7e079c0f300b4324f0af653419f9d76b735", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md": "1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b", + "licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md": "41ace205715d9f19a3214218cc1c01d57c533e02cd0fef7c8e51a49a7fce5ac5", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-MIT.md": "fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc", + "licenses/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151", + "licenses/dependencies/tokio-macros-2.7.2/LICENSE": "0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9", + "licenses/dependencies/tokio-rustls-0.26.5/LICENSE-APACHE": "cc117d90b498b32b11a886f279b359da16a73c3b01efbb2f5cc004b20262334e", + "licenses/dependencies/tokio-rustls-0.26.5/LICENSE-MIT": "e20fa2b8e0a2565f24a792b94b4bf4b6c2b9d36f781d8a9516e218a036e6677a", + "licenses/dependencies/tokio-1.53.1/LICENSE": "253cd04c6714889df2d32f3f64d669179a1c95c76ac43c40882c52eb06bc3552", + "licenses/dependencies/tower-http-0.6.11/LICENSE": "5049cf464977eff4b4fcfa7988d84e74116956a3eb9d5f1d451b3f828f945233", + "licenses/dependencies/tower-layer-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tower-service-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tower-0.5.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482", + "licenses/dependencies/tracing-attributes-0.1.31/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-core-0.1.36/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/tracing-core-0.1.36/src/spin/LICENSE": "58545fed1565e42d687aecec6897d35c6d37ccb71479a137c0deb2203e125c79", + "licenses/dependencies/tracing-0.1.44/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1", + "licenses/dependencies/try-lock-0.2.5/LICENSE": "c816a0749cdc6bf062a5111c159723de51b2bfac66a1dac2655abd9e6b1583eb", + "licenses/dependencies/ttf-parser-0.25.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/ttf-parser-0.25.1/LICENSE-MIT": "f3c9fe731c701ed77fd5fbaac573872af04dc5869385eb9bd5e3c73c42713814", + "licenses/dependencies/ttf-parser-0.25.1/tests/fonts/colr_1_LICENSE": "58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd", + "licenses/dependencies/unicode-bidi-0.3.18/COPYRIGHT": "edb20b474f6cbd4f4db066b54a9e0f687d0009d309412a63431189b59b8e2a07", + "licenses/dependencies/unicode-bidi-0.3.18/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-bidi-0.3.18/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE": "f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1", + "licenses/dependencies/unicode-linebreak-0.1.5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "licenses/dependencies/unicode-script-0.5.8/LICENSE-APACHE": "7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737", + "licenses/dependencies/unicode-script-0.5.8/LICENSE-MIT": "7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c", + "licenses/dependencies/unicode-segmentation-1.13.3/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d", + "licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/unicode-width-0.2.2/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d", + "licenses/dependencies/unicode-width-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/unicode-width-0.2.2/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0", + "licenses/dependencies/untrusted-0.9.0/LICENSE.txt": "7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621", + "licenses/dependencies/url-2.5.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/url-2.5.8/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5", + "licenses/dependencies/utf8_iter-1.0.4/COPYRIGHT": "c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c", + "licenses/dependencies/utf8_iter-1.0.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/utf8_iter-1.0.4/LICENSE-MIT": "3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c", + "licenses/dependencies/uuid-1.26.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/uuid-1.26.0/LICENSE-MIT": "436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d", + "licenses/dependencies/version_check-0.9.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", + "licenses/dependencies/version_check-0.9.5/LICENSE-MIT": "b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e", + "licenses/dependencies/want-0.3.1/LICENSE": "a65f5d0a945d267751344c95665945b90c030ea107faf5c85d518929886187da", + "licenses/dependencies/web-time-1.1.0/LICENSE-APACHE": "54a744942eb3fa63a74d8d359989ed6962c04f3f10ff20cfa08ff8aa7efbe4e6", + "licenses/dependencies/web-time-1.1.0/LICENSE-MIT": "f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b", + "licenses/dependencies/webpki-roots-1.0.9/LICENSE": "e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8", + "licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-core-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-core-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-hal-27.0.4/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-hal-27.0.4/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-types-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-types-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/wgpu-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "licenses/dependencies/wgpu-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21", + "licenses/dependencies/winapi-util-0.1.11/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f", + "licenses/dependencies/winapi-util-0.1.11/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14", + "licenses/dependencies/winapi-util-0.1.11/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c", + "licenses/dependencies/window_clipboard-0.5.1/LICENSE": "7faec985f3e9b1c4a1df646bfedc304ba67e409447f7ab7f4f591f68708d85dc", + "licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-core-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-core-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-implement-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-implement-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-interface-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-interface-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-link-0.2.1/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-link-0.2.1/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-result-0.2.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-result-0.2.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-strings-0.1.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-strings-0.1.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.52.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.52.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.59.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.59.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-sys-0.61.2/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-sys-0.61.2/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-targets-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-targets-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/windows-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b", + "licenses/dependencies/windows-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383", + "licenses/dependencies/winit-0.30.13/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a", + "licenses/dependencies/writeable-0.6.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/xml-rs-0.8.29/LICENSE": "0dc18d924dc0a5f41172a393012843a5eaaef338e795b3645da9cc3b6068220b", + "licenses/dependencies/yazi-0.2.1/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c", + "licenses/dependencies/yazi-0.2.1/LICENSE-MIT": "df62e3ef3f207c91073fedd78b4156a278681d0dd3f942379242c62c6a71a3ec", + "licenses/dependencies/yoke-derive-0.8.2/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/yoke-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zeno-0.3.3/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c", + "licenses/dependencies/zeno-0.3.3/LICENSE-MIT": "34dff8202d63e6df022f4f0ce88dab24f254c35ee0d5958b74dcf74d9eae21cc", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32", + "licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32", + "licenses/dependencies/zerocopy-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df", + "licenses/dependencies/zerofrom-derive-0.1.7/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerofrom-0.1.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zeroize-1.9.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "licenses/dependencies/zeroize-1.9.0/LICENSE-MIT": "8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b", + "licenses/dependencies/zerotrie-0.2.5/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerovec-derive-0.11.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zerovec-0.11.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2", + "licenses/dependencies/zmij-1.0.23/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", + "licenses/rust/COPYRIGHT.html": "5b0c93fc4e6d4b072eaa521b1762d1e746f4c368f65e81a0e5308e2772dac85e", + "licenses/rust/COPYRIGHT-library.html": "68129500b616d5838629e68f55ff3aed5e096dacf60ce9eb41bbe599a563afa6", + "licenses/rust/COPYING3": "8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903", + "licenses/rust/COPYING.RUNTIME": "28e85c5aa4af9b4f1dfe6b4817aa3eefb3eaaee7fd735045016f29ccf50276a1", + "licenses/llvm-libunwind/llvm-ea7d852a70e8-libunwind-LICENSE.TXT": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d" + } +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/restart.stderr.log b/harness/experiments/compact-help-20261001/package/server-smoke/restart.stderr.log new file mode 100644 index 00000000..6bde3005 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/restart.stderr.log @@ -0,0 +1 @@ +arcadia-server 0.2.0 listening on 127.0.0.1:54695; data C:\ar-compact-01a0d717\.local\package39\server-smoke\store diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/restart.stdout.log b/harness/experiments/compact-help-20261001/package/server-smoke/restart.stdout.log new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/result.json b/harness/experiments/compact-help-20261001/package/server-smoke/result.json new file mode 100644 index 00000000..2aaec75a --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/result.json @@ -0,0 +1,104 @@ +{ + "status": "PASS", + "source": "715036e132677dd2bc2fb37ed316d93dc9987aec", + "checks": [ + "Fresh extracted archive identity independently rechecked", + "Exact released server bytes retained", + "Exact new desktop runtime pairing selected", + "version succeeds with sanitized system-only PATH", + "help succeeds with sanitized system-only PATH", + "Fresh isolated store does not preexist", + "first readiness 200", + "Served OpenAPI 200", + "Served OpenAPI exactly matches packaged JSON contract", + "Full authored source import 201", + "Imported envelope GET preserves exact initial ETag", + "Import preserves exact entry, CRLF text, comment and stable IDs", + "Model stable ID distinct from allocated resource ID", + "Source-project GET exact complete authored bundle", + "Conditional edit commits one changed revision", + "New ETag and exact edited authored bundle returned", + "Stale If-Match refused with 412 revision_conflict", + "Stale refusal preserves exact edited model/source pair", + "Acknowledged envelope exactly equals committed isolated store", + "restart readiness 200", + "Restart exact envelope, stable IDs, revision, ETag, comment and CRLF persistence", + "Restart complete source-project exact readback", + "Restart and read leave committed envelope bytes unchanged" + ], + "processes": [ + { + "label": "first", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--bind", + "127.0.0.1:54695", + "--data-dir", + "C:\\ar-compact-01a0d717\\.local\\package39\\server-smoke\\store" + ], + "pid": 5956, + "termination": "Windows TerminateProcess after acknowledged requests (not graceful shutdown claim)", + "exit": 1 + }, + { + "label": "restart", + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--bind", + "127.0.0.1:54695", + "--data-dir", + "C:\\ar-compact-01a0d717\\.local\\package39\\server-smoke\\store" + ], + "pid": 5452, + "termination": "Windows TerminateProcess after acknowledged requests (not graceful shutdown claim)", + "exit": 1 + } + ], + "identity": { + "executable": "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "exe_sha256": "6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237", + "archive": "C:\\ar-compact-01a0d717\\.local\\package39\\dist\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip", + "archive_sha256": "18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2", + "platform": "Windows-11-10.0.26200-SP0", + "python_harness": "C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\python\\python.exe", + "child_environment": { + "SystemRoot": "C:\\Windows", + "WINDIR": "C:\\Windows", + "TEMP": "C:\\Temp", + "TMP": "C:\\Temp", + "USERPROFILE": "C:\\Users\\User", + "LOCALAPPDATA": "C:\\Users\\User\\AppData\\Local", + "APPDATA": "C:\\Users\\User\\AppData\\Roaming", + "COMSPEC": "C:\\Windows\\system32\\cmd.exe", + "OS": "Windows_NT", + "PROCESSOR_ARCHITECTURE": "AMD64", + "PATH": "C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem" + }, + "packaged_dlls": [ + { + "name": "libunwind.dll", + "sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4" + } + ] + }, + "version": { + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--version" + ], + "exit": 0 + }, + "help": { + "command": [ + "C:\\ar-compact-01a0d717\\.local\\package39\\extracted\\ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm\\arcadia-server.exe", + "--help" + ], + "exit": 0 + }, + "bind": "127.0.0.1:54695", + "resource_id": "0447f8e0-401b-4e47-ab77-97bcedeec90e", + "revision": 2, + "etag_initial": "\"p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r1\"", + "etag_final": "\"p-0447f8e0-401b-4e47-ab77-97bcedeec90e-r2\"", + "store_sha256": "62d1fed82f4fc793f3173beb8693fbde94d6aabf4e38e161da93b59178969ee2" +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/run.py b/harness/experiments/compact-help-20261001/package/server-smoke/run.py new file mode 100644 index 00000000..ae14f1c2 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/run.py @@ -0,0 +1,115 @@ +"""Fresh package server/runtime pairing check; prior smoke logic retained.""" +import copy, hashlib, http.client, json, os, pathlib, platform, socket, subprocess, sys, time, traceback +ROOT=pathlib.Path(__file__).resolve().parent +QA=ROOT.parent +result={'status':'RUNNING','source':'715036e132677dd2bc2fb37ed316d93dc9987aec','checks':[],'processes':[]} +def dump(name,obj): (ROOT/name).write_text(json.dumps(obj,indent=2,ensure_ascii=False),encoding='utf-8') +def check(value,why): + if not value: raise AssertionError(why) + result['checks'].append(why) +def sha(p): return hashlib.sha256(p.read_bytes()).hexdigest() +record=json.loads((QA/'extraction-check.json').read_text()) +PIN=record['archive_sha256'] +archive=QA/'dist'/record['archive'] +check(sha(archive)==PIN,'Fresh extracted archive identity independently rechecked') +exe=pathlib.Path(record['bundle'])/'arcadia-server.exe' +check(sha(exe)=='6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237','Exact released server bytes retained') +check(sha(exe.parent/'libunwind.dll')=='f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4','Exact new desktop runtime pairing selected') +package=json.loads((exe.parent/'package.json').read_text(encoding='utf-8-sig')) +dump('package-provenance.json',package) +win=os.environ.get('SystemRoot',r'C:\Windows') +env={key:os.environ[key] for key in ['SystemRoot','WINDIR','TEMP','TMP','USERPROFILE','LOCALAPPDATA','APPDATA','COMSPEC','OS','PROCESSOR_ARCHITECTURE'] if key in os.environ} +env['PATH']=win+'\\System32;'+win+';'+win+'\\System32\\Wbem' +result['identity']={'executable':str(exe),'exe_sha256':sha(exe),'archive':str(archive),'archive_sha256':PIN,'platform':platform.platform(),'python_harness':sys.executable,'child_environment':env,'packaged_dlls':[{ 'name':p.name,'sha256':sha(p)} for p in exe.parent.glob('*.dll')]} +flags=subprocess.CREATE_NO_WINDOW +for arg in ['--version','--help']: + command=[str(exe),arg] + completed=subprocess.run(command,cwd=ROOT,env=env,stdout=subprocess.PIPE,stderr=subprocess.PIPE,creationflags=flags,timeout=15) + label=arg[2:];(ROOT/(label+'.stdout.txt')).write_bytes(completed.stdout);(ROOT/(label+'.stderr.txt')).write_bytes(completed.stderr) + result[label]={'command':command,'exit':completed.returncode} + check(completed.returncode==0,label+' succeeds with sanitized system-only PATH') +store=ROOT/'store' +check(not store.exists(),'Fresh isolated store does not preexist') +store.mkdir() +with socket.socket() as reserved: + reserved.bind(('127.0.0.1',0));port=reserved.getsockname()[1] +result['bind']=f'127.0.0.1:{port}' +process=None;counter=0;streams=[] +def request(method,path,body=None,headers=None): + global counter + counter+=1; prefix=f'{counter:02d}' + raw=b'' if body is None else json.dumps(body,ensure_ascii=False,separators=(',',':')).encode('utf-8') + hdr={'Host':f'127.0.0.1:{port}','Connection':'close'} + if body is not None: hdr.update({'Content-Type':'application/json','Content-Length':str(len(raw))}) + hdr.update(headers or {}) + (ROOT/(prefix+'.request.http')).write_bytes((method+' '+path+' HTTP/1.1\r\n'+''.join(k+': '+v+'\r\n' for k,v in hdr.items())+'\r\n').encode()+raw) + conn=http.client.HTTPConnection('127.0.0.1',port,timeout=10) + conn.request(method,path,body=raw if body is not None else None,headers=hdr) + response=conn.getresponse();data=response.read();pairs=response.getheaders();status=response.status + (ROOT/(prefix+'.response.http')).write_bytes((f'HTTP/1.1 {status} {response.reason}\r\n'+''.join(k+': '+v+'\r\n' for k,v in pairs)+'\r\n').encode()+data) + conn.close() + return status,dict((k.lower(),v) for k,v in pairs),json.loads(data) if data else None + +def start(label): + global process + command=[str(exe),'--bind',f'127.0.0.1:{port}','--data-dir',str(store)] + out=open(ROOT/(label+'.stdout.log'),'wb');err=open(ROOT/(label+'.stderr.log'),'wb');streams.extend([out,err]) + process=subprocess.Popen(command,cwd=ROOT,env=env,stdout=out,stderr=err,creationflags=flags) + result['processes'].append({'label':label,'command':command,'pid':process.pid}) + for _ in range(100): + if process.poll() is not None: raise RuntimeError('Server exited during startup: '+str(process.returncode)) + try: + with socket.create_connection(('127.0.0.1',port),timeout=.1): break + except OSError: time.sleep(.1) + status,_,_=request('GET','/health/ready');check(status==200,label+' readiness 200') +def stop(label): + global process + if process is not None: + process.terminate();code=process.wait(timeout=15) + result['processes'][-1].update({'termination':'Windows TerminateProcess after acknowledged requests (not graceful shutdown claim)','exit':code}) + process=None + for stream in streams: stream.flush() +try: + start('first') + status,_,api=request('GET','/api/v1/openapi.json');check(status==200,'Served OpenAPI 200') + packaged_api=json.loads((exe.parent/'docs/openapi.json').read_text(encoding='utf-8-sig')) + check(api==packaged_api,'Served OpenAPI exactly matches packaged JSON contract') + source='arcadia 7;\r\n// Package QA authored comment — preserve exactly.\r\nproject package_qa "Package QA original" id "93200000-0000-4000-8000-000000000001" {\r\n oa_activity inspect_package "Inspect package" id "93200000-0000-4000-8000-000000000002" {}\r\n}\r\n' + bundle={'entry':'model.arcadia','files':{'model.arcadia':source}} + (ROOT/'original.arcadia').write_bytes(source.encode('utf-8')) + status,headers,created=request('POST','/api/v1/projects/import-source-project',bundle) + check(status==201,'Full authored source import 201');resource=created['resource_id'];etag1=headers['etag'];result['resource_id']=resource + path='/api/v1/projects/'+resource + status,headers,original=request('GET',path);check(status==200 and headers['etag']==etag1,'Imported envelope GET preserves exact initial ETag') + check(original['source_project']==bundle,'Import preserves exact entry, CRLF text, comment and stable IDs') + check(original['model']['id']=='93200000-0000-4000-8000-000000000001' and resource!=original['model']['id'],'Model stable ID distinct from allocated resource ID') + status,headers,read=request('GET',path+'/source-project');check(status==200 and read==bundle and headers['etag']==etag1,'Source-project GET exact complete authored bundle') + edited=copy.deepcopy(bundle);edited['files']['model.arcadia']=source.replace('Package QA original','Package QA edited') + (ROOT/'edited.arcadia').write_bytes(edited['files']['model.arcadia'].encode('utf-8')) + status,headers,mutation=request('PUT',path+'/source-project',edited,{'If-Match':etag1}) + check(status==200 and mutation['changed'] is True and mutation['revision']==original['revision']+1,'Conditional edit commits one changed revision') + etag2=headers['etag'];check(etag2!=etag1 and mutation['source_project']==edited,'New ETag and exact edited authored bundle returned') + stale=copy.deepcopy(bundle);stale['files']['model.arcadia']=source.replace('Package QA original','STALE MUST NOT PERSIST') + status,_,problem=request('PUT',path+'/source-project',stale,{'If-Match':etag1}) + check(status==412 and problem['code']=='revision_conflict','Stale If-Match refused with 412 revision_conflict') + status,headers,accepted=request('GET',path) + expected_model=copy.deepcopy(original['model']);expected_model['name']='Package QA edited' + check(status==200 and headers['etag']==etag2 and accepted['source_project']==edited and accepted['model']==expected_model,'Stale refusal preserves exact edited model/source pair') + stored=store/(resource+'.json');persisted=stored.read_bytes();dump('accepted-envelope.json',accepted) + check(json.loads(persisted)==accepted,'Acknowledged envelope exactly equals committed isolated store') + stop('first') + start('restart') + status,headers,reopened=request('GET',path) + check(status==200 and headers['etag']==etag2 and reopened==accepted,'Restart exact envelope, stable IDs, revision, ETag, comment and CRLF persistence') + status,headers,reopened_source=request('GET',path+'/source-project') + check(status==200 and reopened_source==edited and headers['etag']==etag2,'Restart complete source-project exact readback') + check(stored.read_bytes()==persisted,'Restart and read leave committed envelope bytes unchanged') + result['revision']=accepted['revision'];result['etag_initial']=etag1;result['etag_final']=etag2;result['store_sha256']=hashlib.sha256(persisted).hexdigest();result['status']='PASS' +except Exception: + result['status']='FAIL';result['error']=traceback.format_exc() +finally: + stop('final') + for stream in streams: stream.close() + dump('result.json',result) +print(json.dumps({'status':result['status'],'checks':len(result['checks']),'error':result.get('error')},indent=2)) +sys.exit(0 if result['status']=='PASS' else 1) diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/version.stderr.txt b/harness/experiments/compact-help-20261001/package/server-smoke/version.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/harness/experiments/compact-help-20261001/package/server-smoke/version.stdout.txt b/harness/experiments/compact-help-20261001/package/server-smoke/version.stdout.txt new file mode 100644 index 00000000..c4c85711 --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/server-smoke/version.stdout.txt @@ -0,0 +1 @@ +arcadia-server 0.2.0 diff --git a/harness/experiments/compact-help-20261001/package/windows-environment.json b/harness/experiments/compact-help-20261001/package/windows-environment.json new file mode 100644 index 00000000..405310cf --- /dev/null +++ b/harness/experiments/compact-help-20261001/package/windows-environment.json @@ -0,0 +1,6 @@ +{ + "Caption": "Microsoft Windows 11 Pro", + "Version": "10.0.26200", + "BuildNumber": "26200", + "OSArchitecture": "64-bit" +} diff --git a/harness/experiments/compact-help-20261001/publication.md b/harness/experiments/compact-help-20261001/publication.md new file mode 100644 index 00000000..c6e69799 --- /dev/null +++ b/harness/experiments/compact-help-20261001/publication.md @@ -0,0 +1,23 @@ +# Confirmed scoped compact Help publication + +[Release 8](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/tag/v0.2.0-preview.compact-help.20261001) +is published as an unfinished Windows development prerelease from evidence +checkpoint `f1fdca371394aec1148e67f33f4d8c6b53a0c350`. The existing integrated +release 7 and its branch/tag/assets remain unchanged. + +[Authoritative validation](../../release-compact-help-validation-20261001.md) +identifies desktop source `6e7c4ddaf0775198384a8c4882809ea8e14b2976`, reused server +source `715036e132677dd2bc2fb37ed316d93dc9987aec`, and package documentation +`ea23e229260d7d050b3c3b88e77c3a851e936abe`. Publishing the evidence tag does not +claim binaries rebuilt from its documentation commit. + +[Upload readback](upload-readback.json), [publication readback](publish-readback.json) +and a separate [published-release readback](verify-readback.json) verify all three +assets against their exact local bytes. The final release query confirms draft +false and prerelease true, exact tag/source/body and asset set. The Studio ZIP +is 34,184,534 bytes with SHA256 +`18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2`. + +This is delivery of the bounded #39 contribution, not full OA/SA acceptance or +the separately owned follow-up integration. The review PR remains a comparison +against the frozen foundation; it must be retargeted before any merge. diff --git a/harness/experiments/compact-help-20261001/publish-readback.json b/harness/experiments/compact-help-20261001/publish-readback.json new file mode 100644 index 00000000..5ad24ab1 --- /dev/null +++ b/harness/experiments/compact-help-20261001/publish-readback.json @@ -0,0 +1,28 @@ +{ + "mode": "publish", + "release_id": 8, + "tag": "v0.2.0-preview.compact-help.20261001", + "source": "f1fdca371394aec1148e67f33f4d8c6b53a0c350", + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/tag/v0.2.0-preview.compact-help.20261001", + "draft": false, + "assets": { + "ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip": { + "bytes": 34184534, + "sha256": "18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2", + "asset_id": 33, + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/download/v0.2.0-preview.compact-help.20261001/ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip" + }, + "ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip.sha256": { + "bytes": 146, + "sha256": "fc0cedd3ff6410b416d25096fdb49cc3b8d43a474d2acd72f1587f7ac01e9548", + "asset_id": 34, + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/download/v0.2.0-preview.compact-help.20261001/ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip.sha256" + }, + "VALIDATION.md": { + "bytes": 2739, + "sha256": "35c59dd3cdcedd1269601c31f7c5755db73a5c0fc38987cb09406ae3daaf29ca", + "asset_id": 35, + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/download/v0.2.0-preview.compact-help.20261001/VALIDATION.md" + } + } +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/upload-readback.json b/harness/experiments/compact-help-20261001/upload-readback.json new file mode 100644 index 00000000..51396a55 --- /dev/null +++ b/harness/experiments/compact-help-20261001/upload-readback.json @@ -0,0 +1,28 @@ +{ + "mode": "upload", + "release_id": 8, + "tag": "v0.2.0-preview.compact-help.20261001", + "source": "f1fdca371394aec1148e67f33f4d8c6b53a0c350", + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/tag/v0.2.0-preview.compact-help.20261001", + "draft": true, + "assets": { + "ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip": { + "bytes": 34184534, + "sha256": "18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2", + "asset_id": 33, + "url": "http://217.177.34.108:3000/attachments/cfabace0-90ae-4e20-afe7-54079f01b03c" + }, + "ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip.sha256": { + "bytes": 146, + "sha256": "fc0cedd3ff6410b416d25096fdb49cc3b8d43a474d2acd72f1587f7ac01e9548", + "asset_id": 34, + "url": "http://217.177.34.108:3000/attachments/c1a9f5ea-fe63-4edb-8873-d4c055d4ed25" + }, + "VALIDATION.md": { + "bytes": 2739, + "sha256": "35c59dd3cdcedd1269601c31f7c5755db73a5c0fc38987cb09406ae3daaf29ca", + "asset_id": 35, + "url": "http://217.177.34.108:3000/attachments/2125424f-be2c-4fd6-af0c-ca695900153d" + } + } +} \ No newline at end of file diff --git a/harness/experiments/compact-help-20261001/verify-readback.json b/harness/experiments/compact-help-20261001/verify-readback.json new file mode 100644 index 00000000..cdcf41f2 --- /dev/null +++ b/harness/experiments/compact-help-20261001/verify-readback.json @@ -0,0 +1,28 @@ +{ + "mode": "verify", + "release_id": 8, + "tag": "v0.2.0-preview.compact-help.20261001", + "source": "f1fdca371394aec1148e67f33f4d8c6b53a0c350", + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/tag/v0.2.0-preview.compact-help.20261001", + "draft": false, + "assets": { + "ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip": { + "bytes": 34184534, + "sha256": "18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2", + "asset_id": 33, + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/download/v0.2.0-preview.compact-help.20261001/ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip" + }, + "ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip.sha256": { + "bytes": 146, + "sha256": "fc0cedd3ff6410b416d25096fdb49cc3b8d43a474d2acd72f1587f7ac01e9548", + "asset_id": 34, + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/download/v0.2.0-preview.compact-help.20261001/ArcadiaStudio-0.2.0-preview.compact-help.20261001-x86_64-pc-windows-gnullvm.zip.sha256" + }, + "VALIDATION.md": { + "bytes": 2739, + "sha256": "35c59dd3cdcedd1269601c31f7c5755db73a5c0fc38987cb09406ae3daaf29ca", + "asset_id": 35, + "url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/download/v0.2.0-preview.compact-help.20261001/VALIDATION.md" + } + } +} \ No newline at end of file diff --git a/harness/release-compact-help-validation-20261001.md b/harness/release-compact-help-validation-20261001.md new file mode 100644 index 00000000..e00b3446 --- /dev/null +++ b/harness/release-compact-help-validation-20261001.md @@ -0,0 +1,117 @@ +# Compact Help Windows development preview + +This is the scoped runnable contribution for [issue 39](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/39), +based on the frozen integrated preview `715036e132677dd2bc2fb37ed316d93dc9987aec`. +It removes permanent diagram tutorial prose, keeps concise stable controls and +full allocation destinations, and adds contextual Help/F1 with keyboard reading +and exact editor draft/caret preservation. Arrange cancellation retires its +obsolete armed status. [Decisions, rejected layouts and contribution gates](compact-help-validation-20261001.md) +remain authoritative for the production change. + +## Inputs and artifact + +Package version: `0.2.0-preview.compact-help.20261001`; target: +`x86_64-pc-windows-gnullvm`; dev/unoptimized profile with debug assertions. +Desktop source is `6e7c4ddaf0775198384a8c4882809ea8e14b2976`; package documentation +is `ea23e229260d7d050b3c3b88e77c3a851e936abe`. The server is the exact unchanged +released 715 artifact; core/server/Cargo/vendor inputs remain unchanged. This is +explicit per-binary reuse, not a server rebuild from the desktop commit. + +| Input | SHA256 | +| --- | --- | +| Studio | `d55ecad4b0f75c0c9c26625e5441bef9c9360890b65bc13236c6ebfaf03d631e` | +| Server | `6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237` | +| Selected libunwind | `f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4` | +| Studio ZIP | `18af75c7aea60bb0d5db5b1925d0d0815ecd08afc5bb258438851cfda809a6f2` | + +ZIP: **34,184,534 bytes**, 565 files. The [package evidence packet](experiments/compact-help-20261001/package/README.md) +retains provenance, integrity checks, independent artifact/server review, native +reports/screenshots, actual launch receipts, source/model oracles and captured +HTTP exchanges. Dependency notices and complete packaged documentation are in +the ZIP itself rather than duplicated in the evidence index. +The [incremental independent review](experiments/compact-help-20261001/incremental-review.md) +rechecks all 140 captured files and the added warning evidence. A separate +[indexed-byte check](experiments/compact-help-20261001/indexed-evidence-check.json) +verifies Git preserves the exact captured bytes; the packet's scoped attributes +disable line-ending conversion without changing production source policy. + +## Verification and its limits + +Final contribution formatting, strict all-target desktop Clippy, GUI build and +125 focused tests pass. The earlier 5657 full desktop result remains separately +scoped: 1,538 pass / one new synthetic typing-fixture failure / seven ignores. The fixed +fixture passes fully in the final focused run; 1,421 unrelated final tests were not +rerun. No full-suite final-commit claim is made. + +Fresh extraction verifies all 565 files. Independent artifact review verifies +archive names/content, manifest/input hashes, PE imports, notices and docs. +The selected DLL differs from the prior server's packaged DLL, so fresh server +checks test this exact pairing with system-only PATH and an isolated store: +readiness, exact OpenAPI, source import/edit/read, ETag/revision changes, 412 stale +write refusal and exact acknowledged-write persistence through an owned forced +restart. The first harness adaptation garbled an intended Unicode comment; +its evidence remains. A fresh corrected U+2014/CRLF run passes 23 checks and is +independently reconciled. This is not graceful-shutdown or power-loss acceptance. + +Native package trials on Windows11 open bundled walkthrough/offline Help, edit +at 1100x700, preserve exact caret through F1/Escape/Close, Apply one Activity name, +Save All, Undo/Redo, fresh-directory Save As, fresh-process reopen and no-op Save. +Both desktop processes exit 0 with empty logs; all 565 package files remain unchanged. +The complete 37-file source oracle changes only the declared name literal and +entry filename; seven non-source companions were separately copied, while the +application wrote 30 source files. A separate packaged-server oracle compares the +complete pristine/saved models and exact source bundles: only the declared +Activity name differs. Fresh independent read-only reconciliation passes. + +The initial same-folder/new-entry Save As is correctly refused by destination +protection; all 37 files stay unchanged and recovery succeeds. Its misleading +external-change wording is tracked separately in [issue 46](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/46), +not hidden or counted as a successful save. After the name edit, native checks +show two model warnings rather than the pristine example's one; no error-free +model claim is inferred from UI counts. A read-only validation query confirms +both pristine and saved models are valid. The additional warning is exactly +`trace_drift` / `OaChanged`: the linked OA name changed after its reviewed +transition baseline, while the existing behavior-coverage warning remains. +No trace was silently rewritten or reconciled by the rename. + +This unfinished preview excludes separately owned projection/navigation, +outgoing-drag, icons, grid/performance and State-label increments. Dense routes, +remaining Scenario group adapters, quantities/calculations/constraints, +maintained libraries, full OA/SA acceptance and broad accessibility/DPI coverage +remain unfinished. Current tests use one Windows machine/account with restricted +child PATH, not a second clean machine or isolated new user profile. Linux/WSL +checks remain user-deferred. Existing published releases remain frozen. + +## Run and reproduce + +Verify the adjacent ZIP SHA256, extract the entire directory and open +`arcadia-studio.exe`, keeping `libunwind.dll` beside both executables. Read +`START-HERE.txt`; use Home's water-pressure walkthrough and Help/F1. Copy the +complete example folder before editing. Save All updates the loaded source; +Save As needs a fresh source destination and retains include paths. It does not +clone every external artifact or tutorial companion. + +Optional server, from an extracted bundle in a writable working directory: + +```powershell +.\arcadia-server.exe --bind 127.0.0.1:8787 --data-dir C:/ArcadiaModels/server +``` + +Read packaged `docs/server.md` and `docs/api.rst` for REST/deployment/authentication. +No remote service deployment is claimed. Cargo/Docker recipes require a source +checkout separately. + +Source checks with Rust 1.98.1 and the recorded gnullvm toolchain environment: + +```powershell +cargo fmt --all -- --check +cargo clippy --locked -p oa-desktop --all-targets -- -D warnings +cargo build --locked -p oa-desktop --bin arcadia-studio +cargo test --locked -p oa-desktop -- context_help_tests allocation_drag guide::tests --test-threads=1 +``` + +For package reconstruction, use `scripts/package-windows.ps1` with explicit +`-Target x86_64-pc-windows-gnullvm`, the recorded version, verified binary directory, +matching LLVM-MinGW root, the packet's BuildEvidence and a fresh OutputRoot. +The script performs integrity/notices checks, not compilation or native acceptance. +[Windows packaging](../docs/windows-packaging.md) defines the full procedure.