// Frozen authored schema3 compatibility input. Do not rewrite as current syntax. arcadia 3; project legacy_data "Legacy data contract" id "00000000-0000-0000-0000-000000000001" { sa_function produce "Produce" id "00000000-0000-0000-0000-000000000002" {} sa_function consume "Consume" id "00000000-0000-0000-0000-000000000003" {} sa_exchange_item packet "Position event" id "00000000-0000-0000-0000-000000000004" { kind Event; // Reused record parameters retain their own identities. sa_data_field origin "Origin" id "00000000-0000-0000-0000-000000000007" { type_ref { Named @coordinate; }; } sa_data_field destination "Destination" id "00000000-0000-0000-0000-000000000008" { type_ref { Named @coordinate; }; } } sa_data_type coordinate "Coordinate" id "00000000-0000-0000-0000-000000000005" { definition Record; sa_data_field latitude "Latitude" id "00000000-0000-0000-0000-000000000006" { type_ref Real; unit "deg"; } } sa_interface sender_contract "Sender contract" id "00000000-0000-0000-0000-000000000009" { items [@packet]; } sa_interface receiver_contract "Receiver contract" id "00000000-0000-0000-0000-00000000000a" { items [@packet]; } sa_port output "Output" id "00000000-0000-0000-0000-00000000000b" { parent @produce; contract { FunctionOutput { outgoing_items [@packet]; }; }; legacy none; } sa_port input "Input" id "00000000-0000-0000-0000-00000000000c" { parent @consume; contract { FunctionInput { incoming_items [@packet]; }; }; legacy none; } functional_exchange position_exchange "Position exchange" id "00000000-0000-0000-0000-00000000000d" { source @produce; target @consume; source_port @output; target_port @input; items [@packet]; } sa_scenario scenario "Position scenario" id "00000000-0000-0000-0000-00000000000e" { viewpoint Functional; steps [@message]; sa_lifeline sender "Sender" id "00000000-0000-0000-0000-00000000000f" { represented @produce; } sa_lifeline receiver "Receiver" id "00000000-0000-0000-0000-000000000010" { represented @consume; } sa_occurrence message "Position" id "00000000-0000-0000-0000-000000000011" { body { Exchange { exchange @position_exchange; sender @sender; receiver @receiver; values [{ field @latitude; expression "navigation.latitude"; }]; }; }; } } }