@almadar/std 16.253.0 → 16.254.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/behaviors/lolo/agent/atoms/std-agent-pool.lolo +355 -0
- package/behaviors/lolo/agent/evals/eval-agent-builder.lolo +152 -0
- package/behaviors/lolo/agent/organisms/std-agent-builder.lolo +320 -26
- package/behaviors/lolo-behavior-contracts.json +1 -1
- package/behaviors/registry/agent/atoms/std-agent-context.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-fix-loop.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-memory.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-planner.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-pool.orb +1 -0
- package/behaviors/registry/agent/atoms/std-agent-proposal.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-session.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-suggestions.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-trace.orb +1 -1
- package/behaviors/registry/agent/evals/eval-agent-builder.orb +1 -0
- package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1 -1
- package/behaviors/registry/agent/organisms/std-agent-builder.orb +1 -1
- package/behaviors/registry/infra/atoms/std-analytics.orb +1 -1
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +1 -1
- package/behaviors/registry/infra/atoms/std-audit-capture.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cache-aside.orb +1 -1
- package/behaviors/registry/infra/atoms/std-calendar-sync.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +1 -1
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cross-reference.orb +1 -1
- package/behaviors/registry/infra/atoms/std-data-erasure.orb +1 -1
- package/behaviors/registry/infra/atoms/std-data-import.orb +1 -1
- package/behaviors/registry/infra/atoms/std-global-search.orb +1 -1
- package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +1 -1
- package/behaviors/registry/infra/atoms/std-lifecycle.orb +1 -1
- package/behaviors/registry/infra/atoms/std-migration-job.orb +1 -1
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notification-center.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notification-preferences.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notify-on-event.orb +1 -1
- package/behaviors/registry/infra/atoms/std-page-search.orb +1 -1
- package/behaviors/registry/infra/atoms/std-page-watch.orb +1 -1
- package/behaviors/registry/infra/atoms/std-permission-matrix.orb +1 -1
- package/behaviors/registry/infra/atoms/std-rate-limiter.orb +1 -1
- package/behaviors/registry/infra/atoms/std-reminder-scheduler.orb +1 -1
- package/behaviors/registry/infra/atoms/std-review-cycle.orb +1 -1
- package/behaviors/registry/infra/atoms/std-row-access-control.orb +1 -1
- package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +1 -1
- package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +1 -1
- package/behaviors/registry/ml/atoms/std-data-collector.orb +1 -1
- package/behaviors/registry/ml/atoms/std-graph-builder.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-classify.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-infer.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-label-capture.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-lookup.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-posterior.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-similarity.orb +1 -1
- package/behaviors/registry/ml/atoms/std-tokenizer.orb +1 -1
- package/behaviors/registry/ml/atoms/std-weight-validator.orb +1 -1
- package/behaviors/registry/ml/organisms/std-escalating-decision.orb +1 -1
- package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/std-avl-cosmic-zoom.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-glyph.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-transition-detail.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-flow-canvas.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-layers-panel.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-orb-inspector.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-app-layout.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-app-search.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-behavior-catalog.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-behavior-tour.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-board.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-book-reader.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-browse.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-calendar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-card-grid.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-confirmation.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-date-range.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-detail-layout.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-doc-page.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-event-log.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-export.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-filter.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-gallery.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-geosearch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-graphs.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-hero.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-home.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-import.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-language-picker.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-media-section.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-modal.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-notification-panel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-panel-launcher.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-pricing.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-proof.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-prose.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-rating-review.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-recurrence.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-related.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-role-gate.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-saved-search.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-scatter.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-scoped-list.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-selection.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-site-footer.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-site-header.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-slide-deck.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-stat-band.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-step-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-steps.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tabs.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-thread.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tree.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-wizard.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-workspace-layout.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-animated-graphic.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-animated-reveal.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-aside.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-avatar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-badge.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-box.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-button.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-card.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-center.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-conditional-wrapper.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-dialog.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-divider.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-hstack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-icon.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-image.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-input.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-label.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-overlay.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-pattern-tile.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-presence.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-radio.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-section-header.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-select.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-spacer.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-spinner.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-stack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-stack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-switch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-textarea.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-typography.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-video-embed.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-vstack.orb +1 -1
- package/behaviors/registry/ui/core/molecules/std-stat-rows.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-accordion.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-activity-rail.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-activity-feed.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-activity-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-chat-feed.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-alert.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-carousel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-change-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-chart.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-code-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-container.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-drawer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-error-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-flex.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-field.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-gantt.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-geometric-pattern.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-icon-button.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-input-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-map-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-menu.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-meter.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-modal.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-navigation.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-notification.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-page-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-pagination.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-search-input.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-section.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-split.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tabs.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-top-nav-item.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-form.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-area-fill.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-audio-cue.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-camera-rig.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-choice-gate.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-curve-fog.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-narrative.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gather.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gold.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-lives.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-motion-body.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-patience.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-pickup.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-production.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-score.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-tutorial-autodemo.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-xp.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-zone-card.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-canvas.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-control-button.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-mesh.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-skinned-mesh.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-audio-cue.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-score-display.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-timer-display.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/templates/ui-game-shell.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-fx-cues.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-generate.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-param-explorer.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sample-accumulator.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +1 -1
- package/dist/behaviors-embeddings.hash.json +2 -2
- package/dist/behaviors-embeddings.json +1 -1
- package/dist/knob-embeddings.hash.json +2 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"std-learn-coupled-sim","version":"1.0.0","description":"Generic coupled-dynamics simulation — two named quantities evolve each tick under a config-selected interaction family (predator-prey: dP = aP − bPQ, dQ = cbPQ − dQ; epidemic: dS = −aSI, dI = aSI − bI; kinetics: dP = −aP, dQ = aP − bQ), drawn live as two time-series curves while Run is engaged. The two governing rates are exposed as sliders the learner can retune mid-run, and shock buttons inject or remove a burst of the first quantity so the learner feels how the coupled system absorbs disturbance. All names, coefficients, and scales are config-declared, so one mechanism serves rabbits and foxes, infection and recovery, reactant and product, adopters and churn. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.","orbitals":[{"name":"CoupledSimOrbital","id":"orb_F5B3EJDX6VYKDKP9W6QP2BP55H","entity":{"name":"CoupledSimScene","id":"ent_6E0TF91FEWQQE00SGQBJDPTZFC","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"active","type":"boolean","default":false},{"name":"title","type":"string"},{"name":"taskText","type":"string"},{"name":"kind","type":"string"},{"name":"pLabel","type":"string"},{"name":"qLabel","type":"string"},{"name":"pStart","type":"number"},{"name":"qStart","type":"number"},{"name":"coefALabel","type":"string"},{"name":"coefBLabel","type":"string"},{"name":"t","type":"number","default":0},{"name":"p","type":"number","default":0},{"name":"q","type":"number","default":0},{"name":"coefA","type":"number","default":0},{"name":"coefB","type":"number","default":0},{"name":"running","type":"boolean","default":false},{"name":"speed","type":"number","default":1},{"name":"pSamples","type":"array","items":{"type":"object","properties":{"x":{"name":"x","type":"number","required":true},"y":{"name":"y","type":"number","required":true}}}},{"name":"qSamples","type":"array","items":{"type":"object","properties":{"x":{"name":"x","type":"number","required":true},"y":{"name":"y","type":"number","required":true}}}},{"name":"curves","type":"array","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":false},"color":{"name":"color","type":"string","required":false},"samples":{"name":"samples","type":"array","required":true,"items":{"type":"object","properties":{"y":{"name":"y","type":"number","required":true},"x":{"name":"x","type":"number","required":true}}}}}}}]},"traits":[{"name":"CoupledSimSim","id":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT","entityRebindable":true,"entityContract":{"requires":[],"provides":["active","coefA","coefALabel","coefB","coefBLabel","curves","kind","p","pLabel","pSamples","pStart","q","qLabel","qSamples","qStart","running","speed","t","taskText","title"]},"effectRow":[{"kind":"emit","resource":"COEFS_CHANGED"},{"kind":"emit","resource":"RUN_TOGGLED"},{"kind":"emit","resource":"SHOCK_APPLIED"},{"kind":"emit","resource":"SIM_RESET"},{"kind":"render-ui","resource":"main"},{"kind":"set","resource":"@entity.active"},{"kind":"set","resource":"@entity.coefA"},{"kind":"set","resource":"@entity.coefALabel"},{"kind":"set","resource":"@entity.coefB"},{"kind":"set","resource":"@entity.coefBLabel"},{"kind":"set","resource":"@entity.curves"},{"kind":"set","resource":"@entity.curves","site":"tick"},{"kind":"set","resource":"@entity.kind"},{"kind":"set","resource":"@entity.p"},{"kind":"set","resource":"@entity.p","site":"tick"},{"kind":"set","resource":"@entity.pLabel"},{"kind":"set","resource":"@entity.pSamples"},{"kind":"set","resource":"@entity.pSamples","site":"tick"},{"kind":"set","resource":"@entity.pStart"},{"kind":"set","resource":"@entity.q"},{"kind":"set","resource":"@entity.q","site":"tick"},{"kind":"set","resource":"@entity.qLabel"},{"kind":"set","resource":"@entity.qSamples"},{"kind":"set","resource":"@entity.qSamples","site":"tick"},{"kind":"set","resource":"@entity.qStart"},{"kind":"set","resource":"@entity.running"},{"kind":"set","resource":"@entity.running","site":"tick"},{"kind":"set","resource":"@entity.speed"},{"kind":"set","resource":"@entity.t"},{"kind":"set","resource":"@entity.t","site":"tick"},{"kind":"set","resource":"@entity.taskText"},{"kind":"set","resource":"@entity.title"},{"kind":"ticks","site":"tick"}],"category":"interaction","linkedEntity":"CoupledSimScene","linkedEntityId":"ent_6E0TF91FEWQQE00SGQBJDPTZFC","entityRefIds":{"CoupledSimScene":"ent_6E0TF91FEWQQE00SGQBJDPTZFC"},"emits":[{"event":"RUN_TOGGLED","eventId":"evt_ECWPQGRHBY8NZ8VRK0EEVT4F73","description":"The simulation was started or paused — a composed listener (readout, grader) can subscribe; a harmless no-op when the atom runs standalone.","tier":"domain","scope":"external","payloadSchema":[{"name":"running","type":"boolean"}]},{"event":"SIM_RESET","eventId":"evt_KHRXC6W2M11A0GRDZP72TECTVB","description":"The learner reset the system to its configured starting state.","tier":"domain","scope":"external","payloadSchema":[{"name":"pStart","type":"number"},{"name":"qStart","type":"number"}]},{"event":"COEFS_CHANGED","eventId":"evt_M6VR2KF1C2GP15A91VME5NXRCH","description":"The governing rates after a slider change.","tier":"domain","scope":"external","payloadSchema":[{"name":"coefA","type":"number"},{"name":"coefB","type":"number"}]},{"event":"SHOCK_APPLIED","eventId":"evt_RTXM0AFRRNWCATDWSNN139TSRZ","description":"A disturbance was injected: the burst size and both quantities right after it.","synonyms":"coupled dynamics, predator prey, epidemic, reaction kinetics, feedback loop, disturbance","tier":"domain","scope":"external","payloadSchema":[{"name":"delta","type":"number"},{"name":"p","type":"number"},{"name":"q","type":"number"}]}],"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_98EV3XKEWDQE6KDH00H1PGP7NV","name":"Initialize"},{"key":"MODE_SELECTED","id":"evt_MMXDYD3Z8WZMEECW29ANCH4GAG","name":"Mode Selected","description":"Lab router broadcast naming the active mode; this instrument renders when the mode equals matchMode, otherwise renders null.","tier":"domain","payloadSchema":[{"name":"mode","type":"string"}],"listened":true},{"key":"ROSTER_LOADED","id":"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ","name":"Roster Loaded","description":"Runtime content feed, honoured only when rosterSource is event — mode names the instrument it is for (the matchMode it carries, blank when standalone) and taskText, kind, pLabel, qLabel, pStart, qStart, coefALabel and coefBLabel define the coupled system; a matching instrument re-initialises from it exactly as INIT does from config, any other instrument hides.","tier":"domain","payloadSchema":[{"name":"mode","type":"string","required":true},{"name":"taskText","type":"string","required":true},{"name":"kind","type":"string","required":true},{"name":"pLabel","type":"string","required":true},{"name":"qLabel","type":"string","required":true},{"name":"pStart","type":"number","required":true},{"name":"qStart","type":"number","required":true},{"name":"coefALabel","type":"string","required":true},{"name":"coefBLabel","type":"string","required":true}],"listened":true},{"key":"TOGGLE_RUN","id":"evt_AYFSCZNEB3Q5HX09JHPS31GADN","name":"Toggle Run","description":"Learner pressed the Play/Pause toggle — starts or freezes the coupled evolution.","tier":"domain","listened":true},{"key":"SPEED_SET","id":"evt_69M6NQ92KWH9Y78MVWW6FSRCYY","name":"Speed Set","description":"The learner picked a playback speed; the system evolves that many times faster.","tier":"presentation","payloadSchema":[{"name":"speed","type":"number"}],"listened":true},{"key":"RUN","id":"evt_G8AQBN736RHKC68TKK9JHGXXZB","name":"Run","description":"Learner started (or resumed) the coupled evolution; the two curves draw live until Pause or the configured duration.","tier":"domain","listened":true},{"key":"PAUSE","id":"evt_C2E1EZG2PC1B631GMHZMCCT31W","name":"Pause","description":"Learner froze the simulation mid-run; sliders and shocks still apply to the frozen state.","tier":"domain","listened":true},{"key":"RESET","id":"evt_GY0BH1T5CR2PC0WV8YGPJCZA7T","name":"Reset","description":"Learner restored both quantities, both rates, and the clock to their configured starting values.","tier":"domain","listened":true},{"key":"SET_A","id":"evt_JS8X3FJNATANDAGPRDBFVJZW5Z","name":"Set A","description":"Learner retuned the first governing rate mid-run — value is the new coefficient; the dynamics change from the next tick.","tier":"domain","payloadSchema":[{"name":"value","type":"number"}],"listened":true},{"key":"SET_B","id":"evt_KDZ7ZVWEEC776CX110MFFA0P1D","name":"Set B","description":"Learner retuned the second governing rate mid-run — value is the new coefficient; the dynamics change from the next tick.","tier":"domain","payloadSchema":[{"name":"value","type":"number"}],"listened":true},{"key":"SHOCK","id":"evt_1WKB47CY3DF1PYFVKPAG6R0JPF","name":"Shock","description":"Learner injected (positive) or removed (negative) a burst of the first quantity to disturb the system and watch it respond.","tier":"domain","payloadSchema":[{"name":"delta","type":"number"}],"listened":true},{"key":"RUN_TOGGLED","id":"evt_ECWPQGRHBY8NZ8VRK0EEVT4F73","name":"Run Toggled","description":"The simulation was started or paused — a composed listener (readout, grader) can subscribe; a harmless no-op when the atom runs standalone.","tier":"domain","payloadSchema":[{"name":"running","type":"boolean"}]},{"key":"SIM_RESET","id":"evt_KHRXC6W2M11A0GRDZP72TECTVB","name":"Sim Reset","description":"The learner reset the system to its configured starting state.","tier":"domain","payloadSchema":[{"name":"pStart","type":"number"},{"name":"qStart","type":"number"}]},{"key":"COEFS_CHANGED","id":"evt_M6VR2KF1C2GP15A91VME5NXRCH","name":"Coefs Changed","description":"The governing rates after a slider change.","tier":"domain","payloadSchema":[{"name":"coefA","type":"number"},{"name":"coefB","type":"number"}]},{"key":"SHOCK_APPLIED","id":"evt_RTXM0AFRRNWCATDWSNN139TSRZ","name":"Shock Applied","description":"A disturbance was injected: the burst size and both quantities right after it.","synonyms":"coupled dynamics, predator prey, epidemic, reaction kinetics, feedback loop, disturbance","tier":"domain","payloadSchema":[{"name":"delta","type":"number"},{"name":"p","type":"number"},{"name":"q","type":"number"}]}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_98EV3XKEWDQE6KDH00H1PGP7NV","guard":["and",["==","@config.matchMode",""],["==","@config.rosterSource","config"]],"effects":[["set","@entity.active",true],["set","@entity.title","@config.title"],["set","@entity.taskText","@config.taskText"],["set","@entity.kind","@config.kind"],["set","@entity.pLabel","@config.pLabel"],["set","@entity.qLabel","@config.qLabel"],["set","@entity.pStart","@config.pStart"],["set","@entity.qStart","@config.qStart"],["set","@entity.coefALabel","@config.coefALabel"],["set","@entity.coefBLabel","@config.coefBLabel"],["set","@entity.t",0],["set","@entity.p","@entity.pStart"],["set","@entity.q","@entity.qStart"],["set","@entity.coefA","@config.coefADefault"],["set","@entity.coefB","@config.coefBDefault"],["set","@entity.running","@config.autoRun"],["set","@entity.pSamples",[{"x":0,"y":"@entity.pStart"}]],["set","@entity.qSamples",[{"x":0,"y":"@entity.qStart"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}]]},{"from":"idle","to":"idle","event":"MODE_SELECTED","eventId":"evt_MMXDYD3Z8WZMEECW29ANCH4GAG","guard":["and",["not",["==","@config.matchMode",""]],["not",["==","@payload.mode","@config.matchMode"]]],"effects":[["set","@entity.active",false],["set","@entity.running",false],["render-ui","main",null]]},{"from":"idle","to":"idle","event":"MODE_SELECTED","eventId":"evt_MMXDYD3Z8WZMEECW29ANCH4GAG","guard":["and",["==","@payload.mode","@config.matchMode"],["==","@config.rosterSource","config"]],"effects":[["set","@entity.active",true],["set","@entity.title","@config.title"],["set","@entity.taskText","@config.taskText"],["set","@entity.kind","@config.kind"],["set","@entity.pLabel","@config.pLabel"],["set","@entity.qLabel","@config.qLabel"],["set","@entity.pStart","@config.pStart"],["set","@entity.qStart","@config.qStart"],["set","@entity.coefALabel","@config.coefALabel"],["set","@entity.coefBLabel","@config.coefBLabel"],["set","@entity.t",0],["set","@entity.p","@entity.pStart"],["set","@entity.q","@entity.qStart"],["set","@entity.coefA","@config.coefADefault"],["set","@entity.coefB","@config.coefBDefault"],["set","@entity.running","@config.autoRun"],["set","@entity.pSamples",[{"x":0,"y":"@entity.pStart"}]],["set","@entity.qSamples",[{"x":0,"y":"@entity.qStart"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}]]},{"from":"idle","to":"idle","event":"ROSTER_LOADED","eventId":"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ","guard":["and",["==","@config.rosterSource","event"],["and",["==","@payload.mode","@config.matchMode"],["!=","@payload.kind",""]]],"effects":[["set","@entity.active",true],["set","@entity.title","@config.title"],["set","@entity.taskText","@payload.taskText"],["set","@entity.kind","@payload.kind"],["set","@entity.pLabel","@payload.pLabel"],["set","@entity.qLabel","@payload.qLabel"],["set","@entity.pStart","@payload.pStart"],["set","@entity.qStart","@payload.qStart"],["set","@entity.coefALabel","@payload.coefALabel"],["set","@entity.coefBLabel","@payload.coefBLabel"],["set","@entity.t",0],["set","@entity.p","@entity.pStart"],["set","@entity.q","@entity.qStart"],["set","@entity.coefA","@config.coefADefault"],["set","@entity.coefB","@config.coefBDefault"],["set","@entity.running","@config.autoRun"],["set","@entity.pSamples",[{"x":0,"y":"@entity.pStart"}]],["set","@entity.qSamples",[{"x":0,"y":"@entity.qStart"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}]]},{"from":"idle","to":"idle","event":"ROSTER_LOADED","eventId":"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ","guard":["and",["==","@config.rosterSource","event"],["not",["==","@payload.mode","@config.matchMode"]]],"effects":[["set","@entity.active",false],["set","@entity.running",false],["render-ui","main",null]]},{"from":"idle","to":"idle","event":"TOGGLE_RUN","eventId":"evt_AYFSCZNEB3Q5HX09JHPS31GADN","guard":["and",["==","@entity.active",true],["or",["==","@entity.running",true],["<","@entity.t","@config.duration"]]],"effects":[["set","@entity.running",["not","@entity.running"]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","RUN_TOGGLED",{"running":"@entity.running"}]]},{"from":"idle","to":"idle","event":"SPEED_SET","eventId":"evt_69M6NQ92KWH9Y78MVWW6FSRCYY","guard":["==","@entity.active",true],"effects":[["set","@entity.speed","@payload.speed"],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}]]},{"from":"idle","to":"idle","event":"RUN","eventId":"evt_G8AQBN736RHKC68TKK9JHGXXZB","guard":["and",["==","@entity.active",true],["and",["==","@entity.running",false],["<","@entity.t","@config.duration"]]],"effects":[["set","@entity.running",true],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","RUN_TOGGLED",{"running":"@entity.running"}]]},{"from":"idle","to":"idle","event":"PAUSE","eventId":"evt_C2E1EZG2PC1B631GMHZMCCT31W","guard":["and",["==","@entity.active",true],["==","@entity.running",true]],"effects":[["set","@entity.running",false],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","RUN_TOGGLED",{"running":"@entity.running"}]]},{"from":"idle","to":"idle","event":"RESET","eventId":"evt_GY0BH1T5CR2PC0WV8YGPJCZA7T","guard":["==","@entity.active",true],"effects":[["set","@entity.t",0],["set","@entity.p","@entity.pStart"],["set","@entity.q","@entity.qStart"],["set","@entity.coefA","@config.coefADefault"],["set","@entity.coefB","@config.coefBDefault"],["set","@entity.running",false],["set","@entity.pSamples",[{"x":0,"y":"@entity.pStart"}]],["set","@entity.qSamples",[{"x":0,"y":"@entity.qStart"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","SIM_RESET",{"pStart":"@entity.pStart","qStart":"@entity.qStart"}]]},{"from":"idle","to":"idle","event":"SET_A","eventId":"evt_JS8X3FJNATANDAGPRDBFVJZW5Z","guard":["==","@entity.active",true],"effects":[["set","@entity.coefA",["math/clamp","@payload.value","@config.coefAMin","@config.coefAMax"]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","COEFS_CHANGED",{"coefA":"@entity.coefA","coefB":"@entity.coefB"}]]},{"from":"idle","to":"idle","event":"SET_B","eventId":"evt_KDZ7ZVWEEC776CX110MFFA0P1D","guard":["==","@entity.active",true],"effects":[["set","@entity.coefB",["math/clamp","@payload.value","@config.coefBMin","@config.coefBMax"]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","COEFS_CHANGED",{"coefA":"@entity.coefA","coefB":"@entity.coefB"}]]},{"from":"idle","to":"idle","event":"SHOCK","eventId":"evt_1WKB47CY3DF1PYFVKPAG6R0JPF","guard":["==","@entity.active",true],"effects":[["set","@entity.p",["math/max",0,["+","@entity.p","@payload.delta"]]],["set","@entity.pSamples",["array/append","@entity.pSamples",{"x":"@entity.t","y":"@entity.p"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","SHOCK_APPLIED",{"delta":"@payload.delta","p":"@entity.p","q":"@entity.q"}]]}]},"ticks":[{"name":"coupledTick","interval":100,"guard":["and",["==","@entity.active",true],["and",["==","@entity.running",true],["<","@entity.t","@config.duration"]]],"effects":[["let",[["dt",["*",0.1,["*","@config.timeScale","@entity.speed"]]],["a","@entity.coefA"],["b","@entity.coefB"],["P","@entity.p"],["Q","@entity.q"],["dP",["if",["==","@entity.kind","predator-prey"],["-",["*","@a","@P"],["*","@b","@P","@Q",0.01]],["if",["==","@entity.kind","epidemic"],["-",0,["*","@a","@P","@Q",0.01]],["-",0,["*","@a","@P"]]]]],["dQ",["if",["==","@entity.kind","predator-prey"],["-",["*","@config.coefC","@b","@P","@Q",0.01],["*","@config.coefD","@Q"]],["if",["==","@entity.kind","epidemic"],["-",["*","@a","@P","@Q",0.01],["*","@b","@Q"]],["-",["*","@a","@P"],["*","@b","@Q"]]]]],["newP",["math/max",0,["+","@P",["*","@dP","@dt"]]]],["newQ",["math/max",0,["+","@Q",["*","@dQ","@dt"]]]]],["do",["set","@entity.t",["math/min","@config.duration",["+","@entity.t",["*",0.1,"@entity.speed"]]]],["set","@entity.p","@newP"],["set","@entity.q","@newQ"],["set","@entity.pSamples",["array/append","@entity.pSamples",{"x":"@entity.t","y":"@newP"}]],["set","@entity.qSamples",["array/append","@entity.qSamples",{"x":"@entity.t","y":"@newQ"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["set","@entity.running",["if",[">=","@entity.t","@config.duration"],false,true]]]]]}],"config":{"width":{"type":"number","default":600,"label":"Width","tier":"presentation"},"qStart":{"type":"number","default":40,"label":"Q Start","tier":"domain"},"coefC":{"type":"number","default":0.5,"label":"Coefficient C","description":"Predator-prey only: conversion efficiency of predation into predator growth.","tier":"domain"},"coefBDefault":{"type":"number","default":0.9,"label":"Coefficient B Default","tier":"domain"},"kind":{"type":"string","default":"predator-prey","label":"Interaction Family","description":"Which coupled dynamics govern the two quantities: predator-prey (oscillating cycles), epidemic (S and I with transmission and recovery), or kinetics (A decaying into B).","synonyms":"predator prey, Lotka-Volterra, SIR, epidemic, reaction kinetics, coupled ODE","tier":"domain"},"coefAMin":{"type":"number","default":0,"label":"Coefficient A Min","tier":"domain"},"qColor":{"type":"string","default":"series-2","label":"Q Color","tier":"presentation"},"rosterSource":{"type":"string","default":"config","label":"Roster Source","description":"Where the system definition (taskText, kind, pLabel, qLabel, pStart, qStart, coefALabel, coefBLabel) comes from: config reads those knobs at INIT; event waits for ROSTER_LOADED and takes them from its payload.","tier":"domain","values":["config","event"]},"coefBMin":{"type":"number","default":0,"label":"Coefficient B Min","tier":"domain"},"shockDownLabel":{"type":"string","default":"− Prey cull","label":"Shock Down Label","tier":"presentation"},"coefAStep":{"type":"number","default":0.01,"label":"Coefficient A Step","tier":"presentation"},"coefBMax":{"type":"number","default":2,"label":"Coefficient B Max","tier":"domain"},"pStart":{"type":"number","default":120,"label":"P Start","tier":"domain"},"timeScale":{"type":"number","default":1,"label":"Time Scale","description":"Multiplier on the integration step; raise it to fast-forward the dynamics.","tier":"domain"},"coefAMax":{"type":"number","default":2,"label":"Coefficient A Max","tier":"domain"},"coefALabel":{"type":"string","default":"Prey growth rate","label":"Coefficient A Label","description":"Display label of the first governing rate slider.","tier":"domain"},"qLabel":{"type":"string","default":"Predators","label":"Q Label","description":"Display name of the second quantity.","tier":"domain"},"duration":{"type":"number","default":30,"label":"Duration","description":"Simulated seconds before the run stops automatically.","tier":"domain"},"coefBLabel":{"type":"string","default":"Predation rate","label":"Coefficient B Label","description":"Display label of the second governing rate slider.","tier":"domain"},"pColor":{"type":"string","default":"series-1","label":"P Color","tier":"presentation"},"matchMode":{"type":"string","default":"","label":"Match Mode","description":"When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT (or on ROSTER_LOADED when rosterSource is event).","tier":"presentation"},"taskText":{"type":"string","default":"Run the system, retune the rates, and shock it — watch how the two quantities push and pull each other.","label":"Task Text","description":"One-sentence statement of what to explore.","tier":"domain"},"coefADefault":{"type":"number","default":0.6,"label":"Coefficient A Default","tier":"domain"},"coefD":{"type":"number","default":0.4,"label":"Coefficient D","description":"Predator-prey only: predator death rate.","tier":"domain"},"shockSize":{"type":"number","default":40,"label":"Shock Size","description":"How much of the first quantity a shock button injects or removes.","tier":"domain"},"summary":{"type":"string","default":"","label":"Concept","description":"One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line.","tier":"presentation"},"pLabel":{"type":"string","default":"Prey","label":"P Label","description":"Display name of the first quantity.","tier":"domain"},"title":{"type":"string","default":"Coupled System","label":"Title","description":"The instrument's name, the header's one hero.","tier":"presentation"},"shockUpLabel":{"type":"string","default":"+ Prey burst","label":"Shock Up Label","tier":"presentation"},"height":{"type":"number","default":360,"label":"Height","tier":"presentation"},"gridStep":{"type":"number","default":50,"label":"Grid Step","tier":"presentation"},"coefBStep":{"type":"number","default":0.01,"label":"Coefficient B Step","tier":"presentation"},"autoRun":{"type":"boolean","default":true,"label":"Auto Run","description":"Whether the simulation starts running immediately on load.","tier":"domain"},"valueMax":{"type":"number","default":300,"label":"Value Max","description":"Upper bound of the chart's y axis.","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"CoupledSimPage","id":"pag_YY3X67HVXVXYXTGB3DY7A1HTSF","path":"/learn-coupled-sim","traits":[{"ref":"CoupledSimSim","refId":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"}]}],"types":{"CoupledCurve":[{"name":"label","type":"string"},{"name":"color","type":"string"},{"name":"samples","type":"[object]","required":true,"properties":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]}],"CoupledSample":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_6E0TF91FEWQQE00SGQBJDPTZFC":{"id":"ent_6E0TF91FEWQQE00SGQBJDPTZFC","kind":"entity","bakedName":"CoupledSimScene","curName":"CoupledSimScene","renames":[],"owner":"workspace"},"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ":{"id":"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ","kind":"event","bakedName":"ROSTER_LOADED","curName":"ROSTER_LOADED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_1WKB47CY3DF1PYFVKPAG6R0JPF":{"id":"evt_1WKB47CY3DF1PYFVKPAG6R0JPF","kind":"event","bakedName":"SHOCK","curName":"SHOCK","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_69M6NQ92KWH9Y78MVWW6FSRCYY":{"id":"evt_69M6NQ92KWH9Y78MVWW6FSRCYY","kind":"event","bakedName":"SPEED_SET","curName":"SPEED_SET","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_98EV3XKEWDQE6KDH00H1PGP7NV":{"id":"evt_98EV3XKEWDQE6KDH00H1PGP7NV","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_AYFSCZNEB3Q5HX09JHPS31GADN":{"id":"evt_AYFSCZNEB3Q5HX09JHPS31GADN","kind":"event","bakedName":"TOGGLE_RUN","curName":"TOGGLE_RUN","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_C2E1EZG2PC1B631GMHZMCCT31W":{"id":"evt_C2E1EZG2PC1B631GMHZMCCT31W","kind":"event","bakedName":"PAUSE","curName":"PAUSE","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_ECWPQGRHBY8NZ8VRK0EEVT4F73":{"id":"evt_ECWPQGRHBY8NZ8VRK0EEVT4F73","kind":"event","bakedName":"RUN_TOGGLED","curName":"RUN_TOGGLED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_G8AQBN736RHKC68TKK9JHGXXZB":{"id":"evt_G8AQBN736RHKC68TKK9JHGXXZB","kind":"event","bakedName":"RUN","curName":"RUN","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_GY0BH1T5CR2PC0WV8YGPJCZA7T":{"id":"evt_GY0BH1T5CR2PC0WV8YGPJCZA7T","kind":"event","bakedName":"RESET","curName":"RESET","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_JS8X3FJNATANDAGPRDBFVJZW5Z":{"id":"evt_JS8X3FJNATANDAGPRDBFVJZW5Z","kind":"event","bakedName":"SET_A","curName":"SET_A","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_KDZ7ZVWEEC776CX110MFFA0P1D":{"id":"evt_KDZ7ZVWEEC776CX110MFFA0P1D","kind":"event","bakedName":"SET_B","curName":"SET_B","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_KHRXC6W2M11A0GRDZP72TECTVB":{"id":"evt_KHRXC6W2M11A0GRDZP72TECTVB","kind":"event","bakedName":"SIM_RESET","curName":"SIM_RESET","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_M6VR2KF1C2GP15A91VME5NXRCH":{"id":"evt_M6VR2KF1C2GP15A91VME5NXRCH","kind":"event","bakedName":"COEFS_CHANGED","curName":"COEFS_CHANGED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_MMXDYD3Z8WZMEECW29ANCH4GAG":{"id":"evt_MMXDYD3Z8WZMEECW29ANCH4GAG","kind":"event","bakedName":"MODE_SELECTED","curName":"MODE_SELECTED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_RTXM0AFRRNWCATDWSNN139TSRZ":{"id":"evt_RTXM0AFRRNWCATDWSNN139TSRZ","kind":"event","bakedName":"SHOCK_APPLIED","curName":"SHOCK_APPLIED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"orb_F5B3EJDX6VYKDKP9W6QP2BP55H":{"id":"orb_F5B3EJDX6VYKDKP9W6QP2BP55H","kind":"orbital","bakedName":"CoupledSimOrbital","curName":"CoupledSimOrbital","renames":[],"owner":"workspace"},"pag_YY3X67HVXVXYXTGB3DY7A1HTSF":{"id":"pag_YY3X67HVXVXYXTGB3DY7A1HTSF","kind":"page","bakedName":"CoupledSimPage","curName":"CoupledSimPage","renames":[],"owner":"workspace"},"trt_B20AJJEDAH6N8JVJ3QD8F19JWT":{"id":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT","kind":"trait","bakedName":"CoupledSimSim","curName":"CoupledSimSim","renames":[],"owner":"workspace"}}}}
|
|
1
|
+
{"name":"std-learn-coupled-sim","version":"1.0.0","description":"Generic coupled-dynamics simulation — two named quantities evolve each tick under a config-selected interaction family (predator-prey: dP = aP − bPQ, dQ = cbPQ − dQ; epidemic: dS = −aSI, dI = aSI − bI; kinetics: dP = −aP, dQ = aP − bQ), drawn live as two time-series curves while Run is engaged. The two governing rates are exposed as sliders the learner can retune mid-run, and shock buttons inject or remove a burst of the first quantity so the learner feels how the coupled system absorbs disturbance. All names, coefficients, and scales are config-declared, so one mechanism serves rabbits and foxes, infection and recovery, reactant and product, adopters and churn. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.","orbitals":[{"name":"CoupledSimOrbital","id":"orb_F5B3EJDX6VYKDKP9W6QP2BP55H","entity":{"name":"CoupledSimScene","id":"ent_6E0TF91FEWQQE00SGQBJDPTZFC","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"active","type":"boolean","default":false},{"name":"title","type":"string"},{"name":"taskText","type":"string"},{"name":"kind","type":"string"},{"name":"pLabel","type":"string"},{"name":"qLabel","type":"string"},{"name":"pStart","type":"number"},{"name":"qStart","type":"number"},{"name":"coefALabel","type":"string"},{"name":"coefBLabel","type":"string"},{"name":"t","type":"number","default":0},{"name":"p","type":"number","default":0},{"name":"q","type":"number","default":0},{"name":"coefA","type":"number","default":0},{"name":"coefB","type":"number","default":0},{"name":"running","type":"boolean","default":false},{"name":"speed","type":"number","default":1},{"name":"pSamples","type":"array","items":{"type":"object","properties":{"y":{"name":"y","type":"number","required":true},"x":{"name":"x","type":"number","required":true}}}},{"name":"qSamples","type":"array","items":{"type":"object","properties":{"y":{"name":"y","type":"number","required":true},"x":{"name":"x","type":"number","required":true}}}},{"name":"curves","type":"array","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":false},"color":{"name":"color","type":"string","required":false},"samples":{"name":"samples","type":"array","required":true,"items":{"type":"object","properties":{"x":{"name":"x","type":"number","required":true},"y":{"name":"y","type":"number","required":true}}}}}}}]},"traits":[{"name":"CoupledSimSim","id":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT","entityRebindable":true,"entityContract":{"requires":[],"provides":["active","coefA","coefALabel","coefB","coefBLabel","curves","kind","p","pLabel","pSamples","pStart","q","qLabel","qSamples","qStart","running","speed","t","taskText","title"]},"effectRow":[{"kind":"emit","resource":"COEFS_CHANGED"},{"kind":"emit","resource":"RUN_TOGGLED"},{"kind":"emit","resource":"SHOCK_APPLIED"},{"kind":"emit","resource":"SIM_RESET"},{"kind":"render-ui","resource":"main"},{"kind":"set","resource":"@entity.active"},{"kind":"set","resource":"@entity.coefA"},{"kind":"set","resource":"@entity.coefALabel"},{"kind":"set","resource":"@entity.coefB"},{"kind":"set","resource":"@entity.coefBLabel"},{"kind":"set","resource":"@entity.curves"},{"kind":"set","resource":"@entity.curves","site":"tick"},{"kind":"set","resource":"@entity.kind"},{"kind":"set","resource":"@entity.p"},{"kind":"set","resource":"@entity.p","site":"tick"},{"kind":"set","resource":"@entity.pLabel"},{"kind":"set","resource":"@entity.pSamples"},{"kind":"set","resource":"@entity.pSamples","site":"tick"},{"kind":"set","resource":"@entity.pStart"},{"kind":"set","resource":"@entity.q"},{"kind":"set","resource":"@entity.q","site":"tick"},{"kind":"set","resource":"@entity.qLabel"},{"kind":"set","resource":"@entity.qSamples"},{"kind":"set","resource":"@entity.qSamples","site":"tick"},{"kind":"set","resource":"@entity.qStart"},{"kind":"set","resource":"@entity.running"},{"kind":"set","resource":"@entity.running","site":"tick"},{"kind":"set","resource":"@entity.speed"},{"kind":"set","resource":"@entity.t"},{"kind":"set","resource":"@entity.t","site":"tick"},{"kind":"set","resource":"@entity.taskText"},{"kind":"set","resource":"@entity.title"},{"kind":"ticks","site":"tick"}],"category":"interaction","linkedEntity":"CoupledSimScene","linkedEntityId":"ent_6E0TF91FEWQQE00SGQBJDPTZFC","entityRefIds":{"CoupledSimScene":"ent_6E0TF91FEWQQE00SGQBJDPTZFC"},"emits":[{"event":"RUN_TOGGLED","eventId":"evt_ECWPQGRHBY8NZ8VRK0EEVT4F73","description":"The simulation was started or paused — a composed listener (readout, grader) can subscribe; a harmless no-op when the atom runs standalone.","tier":"domain","scope":"external","payloadSchema":[{"name":"running","type":"boolean"}]},{"event":"SIM_RESET","eventId":"evt_KHRXC6W2M11A0GRDZP72TECTVB","description":"The learner reset the system to its configured starting state.","tier":"domain","scope":"external","payloadSchema":[{"name":"pStart","type":"number"},{"name":"qStart","type":"number"}]},{"event":"COEFS_CHANGED","eventId":"evt_M6VR2KF1C2GP15A91VME5NXRCH","description":"The governing rates after a slider change.","tier":"domain","scope":"external","payloadSchema":[{"name":"coefA","type":"number"},{"name":"coefB","type":"number"}]},{"event":"SHOCK_APPLIED","eventId":"evt_RTXM0AFRRNWCATDWSNN139TSRZ","description":"A disturbance was injected: the burst size and both quantities right after it.","synonyms":"coupled dynamics, predator prey, epidemic, reaction kinetics, feedback loop, disturbance","tier":"domain","scope":"external","payloadSchema":[{"name":"delta","type":"number"},{"name":"p","type":"number"},{"name":"q","type":"number"}]}],"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_98EV3XKEWDQE6KDH00H1PGP7NV","name":"Initialize"},{"key":"MODE_SELECTED","id":"evt_MMXDYD3Z8WZMEECW29ANCH4GAG","name":"Mode Selected","description":"Lab router broadcast naming the active mode; this instrument renders when the mode equals matchMode, otherwise renders null.","tier":"domain","payloadSchema":[{"name":"mode","type":"string"}],"listened":true},{"key":"ROSTER_LOADED","id":"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ","name":"Roster Loaded","description":"Runtime content feed, honoured only when rosterSource is event — mode names the instrument it is for (the matchMode it carries, blank when standalone) and taskText, kind, pLabel, qLabel, pStart, qStart, coefALabel and coefBLabel define the coupled system; a matching instrument re-initialises from it exactly as INIT does from config, any other instrument hides.","tier":"domain","payloadSchema":[{"name":"mode","type":"string","required":true},{"name":"taskText","type":"string","required":true},{"name":"kind","type":"string","required":true},{"name":"pLabel","type":"string","required":true},{"name":"qLabel","type":"string","required":true},{"name":"pStart","type":"number","required":true},{"name":"qStart","type":"number","required":true},{"name":"coefALabel","type":"string","required":true},{"name":"coefBLabel","type":"string","required":true}],"listened":true},{"key":"TOGGLE_RUN","id":"evt_AYFSCZNEB3Q5HX09JHPS31GADN","name":"Toggle Run","description":"Learner pressed the Play/Pause toggle — starts or freezes the coupled evolution.","tier":"domain","listened":true},{"key":"SPEED_SET","id":"evt_69M6NQ92KWH9Y78MVWW6FSRCYY","name":"Speed Set","description":"The learner picked a playback speed; the system evolves that many times faster.","tier":"presentation","payloadSchema":[{"name":"speed","type":"number"}],"listened":true},{"key":"RUN","id":"evt_G8AQBN736RHKC68TKK9JHGXXZB","name":"Run","description":"Learner started (or resumed) the coupled evolution; the two curves draw live until Pause or the configured duration.","tier":"domain","listened":true},{"key":"PAUSE","id":"evt_C2E1EZG2PC1B631GMHZMCCT31W","name":"Pause","description":"Learner froze the simulation mid-run; sliders and shocks still apply to the frozen state.","tier":"domain","listened":true},{"key":"RESET","id":"evt_GY0BH1T5CR2PC0WV8YGPJCZA7T","name":"Reset","description":"Learner restored both quantities, both rates, and the clock to their configured starting values.","tier":"domain","listened":true},{"key":"SET_A","id":"evt_JS8X3FJNATANDAGPRDBFVJZW5Z","name":"Set A","description":"Learner retuned the first governing rate mid-run — value is the new coefficient; the dynamics change from the next tick.","tier":"domain","payloadSchema":[{"name":"value","type":"number"}],"listened":true},{"key":"SET_B","id":"evt_KDZ7ZVWEEC776CX110MFFA0P1D","name":"Set B","description":"Learner retuned the second governing rate mid-run — value is the new coefficient; the dynamics change from the next tick.","tier":"domain","payloadSchema":[{"name":"value","type":"number"}],"listened":true},{"key":"SHOCK","id":"evt_1WKB47CY3DF1PYFVKPAG6R0JPF","name":"Shock","description":"Learner injected (positive) or removed (negative) a burst of the first quantity to disturb the system and watch it respond.","tier":"domain","payloadSchema":[{"name":"delta","type":"number"}],"listened":true},{"key":"RUN_TOGGLED","id":"evt_ECWPQGRHBY8NZ8VRK0EEVT4F73","name":"Run Toggled","description":"The simulation was started or paused — a composed listener (readout, grader) can subscribe; a harmless no-op when the atom runs standalone.","tier":"domain","payloadSchema":[{"name":"running","type":"boolean"}]},{"key":"SIM_RESET","id":"evt_KHRXC6W2M11A0GRDZP72TECTVB","name":"Sim Reset","description":"The learner reset the system to its configured starting state.","tier":"domain","payloadSchema":[{"name":"pStart","type":"number"},{"name":"qStart","type":"number"}]},{"key":"COEFS_CHANGED","id":"evt_M6VR2KF1C2GP15A91VME5NXRCH","name":"Coefs Changed","description":"The governing rates after a slider change.","tier":"domain","payloadSchema":[{"name":"coefA","type":"number"},{"name":"coefB","type":"number"}]},{"key":"SHOCK_APPLIED","id":"evt_RTXM0AFRRNWCATDWSNN139TSRZ","name":"Shock Applied","description":"A disturbance was injected: the burst size and both quantities right after it.","synonyms":"coupled dynamics, predator prey, epidemic, reaction kinetics, feedback loop, disturbance","tier":"domain","payloadSchema":[{"name":"delta","type":"number"},{"name":"p","type":"number"},{"name":"q","type":"number"}]}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_98EV3XKEWDQE6KDH00H1PGP7NV","guard":["and",["==","@config.matchMode",""],["==","@config.rosterSource","config"]],"effects":[["set","@entity.active",true],["set","@entity.title","@config.title"],["set","@entity.taskText","@config.taskText"],["set","@entity.kind","@config.kind"],["set","@entity.pLabel","@config.pLabel"],["set","@entity.qLabel","@config.qLabel"],["set","@entity.pStart","@config.pStart"],["set","@entity.qStart","@config.qStart"],["set","@entity.coefALabel","@config.coefALabel"],["set","@entity.coefBLabel","@config.coefBLabel"],["set","@entity.t",0],["set","@entity.p","@entity.pStart"],["set","@entity.q","@entity.qStart"],["set","@entity.coefA","@config.coefADefault"],["set","@entity.coefB","@config.coefBDefault"],["set","@entity.running","@config.autoRun"],["set","@entity.pSamples",[{"x":0,"y":"@entity.pStart"}]],["set","@entity.qSamples",[{"x":0,"y":"@entity.qStart"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}]]},{"from":"idle","to":"idle","event":"MODE_SELECTED","eventId":"evt_MMXDYD3Z8WZMEECW29ANCH4GAG","guard":["and",["not",["==","@config.matchMode",""]],["not",["==","@payload.mode","@config.matchMode"]]],"effects":[["set","@entity.active",false],["set","@entity.running",false],["render-ui","main",null]]},{"from":"idle","to":"idle","event":"MODE_SELECTED","eventId":"evt_MMXDYD3Z8WZMEECW29ANCH4GAG","guard":["and",["==","@payload.mode","@config.matchMode"],["==","@config.rosterSource","config"]],"effects":[["set","@entity.active",true],["set","@entity.title","@config.title"],["set","@entity.taskText","@config.taskText"],["set","@entity.kind","@config.kind"],["set","@entity.pLabel","@config.pLabel"],["set","@entity.qLabel","@config.qLabel"],["set","@entity.pStart","@config.pStart"],["set","@entity.qStart","@config.qStart"],["set","@entity.coefALabel","@config.coefALabel"],["set","@entity.coefBLabel","@config.coefBLabel"],["set","@entity.t",0],["set","@entity.p","@entity.pStart"],["set","@entity.q","@entity.qStart"],["set","@entity.coefA","@config.coefADefault"],["set","@entity.coefB","@config.coefBDefault"],["set","@entity.running","@config.autoRun"],["set","@entity.pSamples",[{"x":0,"y":"@entity.pStart"}]],["set","@entity.qSamples",[{"x":0,"y":"@entity.qStart"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}]]},{"from":"idle","to":"idle","event":"ROSTER_LOADED","eventId":"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ","guard":["and",["==","@config.rosterSource","event"],["and",["==","@payload.mode","@config.matchMode"],["!=","@payload.kind",""]]],"effects":[["set","@entity.active",true],["set","@entity.title","@config.title"],["set","@entity.taskText","@payload.taskText"],["set","@entity.kind","@payload.kind"],["set","@entity.pLabel","@payload.pLabel"],["set","@entity.qLabel","@payload.qLabel"],["set","@entity.pStart","@payload.pStart"],["set","@entity.qStart","@payload.qStart"],["set","@entity.coefALabel","@payload.coefALabel"],["set","@entity.coefBLabel","@payload.coefBLabel"],["set","@entity.t",0],["set","@entity.p","@entity.pStart"],["set","@entity.q","@entity.qStart"],["set","@entity.coefA","@config.coefADefault"],["set","@entity.coefB","@config.coefBDefault"],["set","@entity.running","@config.autoRun"],["set","@entity.pSamples",[{"x":0,"y":"@entity.pStart"}]],["set","@entity.qSamples",[{"x":0,"y":"@entity.qStart"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}]]},{"from":"idle","to":"idle","event":"ROSTER_LOADED","eventId":"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ","guard":["and",["==","@config.rosterSource","event"],["not",["==","@payload.mode","@config.matchMode"]]],"effects":[["set","@entity.active",false],["set","@entity.running",false],["render-ui","main",null]]},{"from":"idle","to":"idle","event":"TOGGLE_RUN","eventId":"evt_AYFSCZNEB3Q5HX09JHPS31GADN","guard":["and",["==","@entity.active",true],["or",["==","@entity.running",true],["<","@entity.t","@config.duration"]]],"effects":[["set","@entity.running",["not","@entity.running"]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","RUN_TOGGLED",{"running":"@entity.running"}]]},{"from":"idle","to":"idle","event":"SPEED_SET","eventId":"evt_69M6NQ92KWH9Y78MVWW6FSRCYY","guard":["==","@entity.active",true],"effects":[["set","@entity.speed","@payload.speed"],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}]]},{"from":"idle","to":"idle","event":"RUN","eventId":"evt_G8AQBN736RHKC68TKK9JHGXXZB","guard":["and",["==","@entity.active",true],["and",["==","@entity.running",false],["<","@entity.t","@config.duration"]]],"effects":[["set","@entity.running",true],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","RUN_TOGGLED",{"running":"@entity.running"}]]},{"from":"idle","to":"idle","event":"PAUSE","eventId":"evt_C2E1EZG2PC1B631GMHZMCCT31W","guard":["and",["==","@entity.active",true],["==","@entity.running",true]],"effects":[["set","@entity.running",false],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","RUN_TOGGLED",{"running":"@entity.running"}]]},{"from":"idle","to":"idle","event":"RESET","eventId":"evt_GY0BH1T5CR2PC0WV8YGPJCZA7T","guard":["==","@entity.active",true],"effects":[["set","@entity.t",0],["set","@entity.p","@entity.pStart"],["set","@entity.q","@entity.qStart"],["set","@entity.coefA","@config.coefADefault"],["set","@entity.coefB","@config.coefBDefault"],["set","@entity.running",false],["set","@entity.pSamples",[{"x":0,"y":"@entity.pStart"}]],["set","@entity.qSamples",[{"x":0,"y":"@entity.qStart"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","SIM_RESET",{"pStart":"@entity.pStart","qStart":"@entity.qStart"}]]},{"from":"idle","to":"idle","event":"SET_A","eventId":"evt_JS8X3FJNATANDAGPRDBFVJZW5Z","guard":["==","@entity.active",true],"effects":[["set","@entity.coefA",["math/clamp","@payload.value","@config.coefAMin","@config.coefAMax"]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","COEFS_CHANGED",{"coefA":"@entity.coefA","coefB":"@entity.coefB"}]]},{"from":"idle","to":"idle","event":"SET_B","eventId":"evt_KDZ7ZVWEEC776CX110MFFA0P1D","guard":["==","@entity.active",true],"effects":[["set","@entity.coefB",["math/clamp","@payload.value","@config.coefBMin","@config.coefBMax"]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","COEFS_CHANGED",{"coefA":"@entity.coefA","coefB":"@entity.coefB"}]]},{"from":"idle","to":"idle","event":"SHOCK","eventId":"evt_1WKB47CY3DF1PYFVKPAG6R0JPF","guard":["==","@entity.active",true],"effects":[["set","@entity.p",["math/max",0,["+","@entity.p","@payload.delta"]]],["set","@entity.pSamples",["array/append","@entity.pSamples",{"x":"@entity.t","y":"@entity.p"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["render-ui","main",{"type":"box","padding":"md","children":[{"type":"stack","direction":"vertical","gap":"md","children":[{"type":"stack","direction":"horizontal","justify":"between","align":"start","gap":"md","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"h4","content":"@entity.title"},["if",["==","@config.summary",""],null,{"type":"typography","variant":"body2","color":"muted","content":"@config.summary"}]]},{"type":"badge","label":["if",[">=","@entity.t","@config.duration"],"Done",["if","@entity.running","Running","Paused"]],"variant":["if",[">=","@entity.t","@config.duration"],"success",["if","@entity.running","primary","neutral"]]}]},{"type":"stack","direction":"horizontal","align":"center","gap":"sm","wrap":true,"children":[["if","@entity.running",{"type":"button","action":"TOGGLE_RUN","label":"Pause","icon":"pause","variant":"primary","aria-pressed":"true"},{"type":"button","action":"TOGGLE_RUN","label":"Play","icon":"play","variant":"primary","aria-pressed":"false","disabled":[">=","@entity.t","@config.duration"]}],{"type":"button","action":"RESET","label":"Reset","icon":"rotate-ccw","variant":"ghost"},{"type":"button","action":"SHOCK","actionPayload":{"delta":"@config.shockSize"},"label":"@config.shockUpLabel","variant":"secondary","size":"sm"},{"type":"button","action":"SHOCK","actionPayload":{"delta":["-",0,"@config.shockSize"]},"label":"@config.shockDownLabel","variant":"secondary","size":"sm"},{"type":"stack","direction":"horizontal","align":"center","gap":"xs","role":"group","aria-label":"Speed","children":[{"type":"button","action":"SPEED_SET","actionPayload":{"speed":0.5},"label":"0.5×","size":"sm","variant":["if",["==","@entity.speed",0.5],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",0.5],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":1},"label":"1×","size":"sm","variant":["if",["==","@entity.speed",1],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",1],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":2},"label":"2×","size":"sm","variant":["if",["==","@entity.speed",2],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",2],"true","false"]},{"type":"button","action":"SPEED_SET","actionPayload":{"speed":4},"label":"4×","size":"sm","variant":["if",["==","@entity.speed",4],"secondary","ghost"],"aria-pressed":["if",["==","@entity.speed",4],"true","false"]}]},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","t = ",["math/round","@entity.t",1]," of ","@config.duration"]}]},{"type":"math-canvas","width":"@config.width","height":"@config.height","title":"","xMin":0,"xMax":"@config.duration","yMin":0,"yMax":"@config.valueMax","showAxes":true,"showGrid":true,"gridStep":"@config.gridStep","curves":"@entity.curves","points":[],"vectors":[],"shapes":[],"interactive":false,"animate":false,"keyMap":{"Space":"TOGGLE_RUN","KeyR":"RESET"}},{"type":"stack","direction":"vertical","gap":"sm","children":[{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefALabel",": ",["math/round","@entity.coefA",3]]},{"type":"range-slider","min":"@config.coefAMin","max":"@config.coefAMax","step":"@config.coefAStep","value":"@entity.coefA","showTooltip":true,"action":"SET_A"}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.coefBLabel",": ",["math/round","@entity.coefB",3]]},{"type":"range-slider","min":"@config.coefBMin","max":"@config.coefBMax","step":"@config.coefBStep","value":"@entity.coefB","showTooltip":true,"action":"SET_B"}]}]},{"type":"stack","direction":"vertical","gap":"xs","children":[{"type":"typography","variant":"body","content":"@entity.taskText"},{"type":"typography","variant":"caption","color":"muted","content":["str/concat","@entity.pLabel"," = ",["math/round","@entity.p",1]," · ","@entity.qLabel"," = ",["math/round","@entity.q",1]]}]}]}]}],["emit","SHOCK_APPLIED",{"delta":"@payload.delta","p":"@entity.p","q":"@entity.q"}]]}]},"ticks":[{"name":"coupledTick","interval":100,"guard":["and",["==","@entity.active",true],["and",["==","@entity.running",true],["<","@entity.t","@config.duration"]]],"effects":[["let",[["dt",["*",0.1,["*","@config.timeScale","@entity.speed"]]],["a","@entity.coefA"],["b","@entity.coefB"],["P","@entity.p"],["Q","@entity.q"],["dP",["if",["==","@entity.kind","predator-prey"],["-",["*","@a","@P"],["*","@b","@P","@Q",0.01]],["if",["==","@entity.kind","epidemic"],["-",0,["*","@a","@P","@Q",0.01]],["-",0,["*","@a","@P"]]]]],["dQ",["if",["==","@entity.kind","predator-prey"],["-",["*","@config.coefC","@b","@P","@Q",0.01],["*","@config.coefD","@Q"]],["if",["==","@entity.kind","epidemic"],["-",["*","@a","@P","@Q",0.01],["*","@b","@Q"]],["-",["*","@a","@P"],["*","@b","@Q"]]]]],["newP",["math/max",0,["+","@P",["*","@dP","@dt"]]]],["newQ",["math/max",0,["+","@Q",["*","@dQ","@dt"]]]]],["do",["set","@entity.t",["math/min","@config.duration",["+","@entity.t",["*",0.1,"@entity.speed"]]]],["set","@entity.p","@newP"],["set","@entity.q","@newQ"],["set","@entity.pSamples",["array/append","@entity.pSamples",{"x":"@entity.t","y":"@newP"}]],["set","@entity.qSamples",["array/append","@entity.qSamples",{"x":"@entity.t","y":"@newQ"}]],["set","@entity.curves",[{"label":"@entity.pLabel","color":"@config.pColor","samples":"@entity.pSamples"},{"label":"@entity.qLabel","color":"@config.qColor","samples":"@entity.qSamples"}]],["set","@entity.running",["if",[">=","@entity.t","@config.duration"],false,true]]]]]}],"config":{"coefBDefault":{"type":"number","default":0.9,"label":"Coefficient B Default","tier":"domain"},"width":{"type":"number","default":600,"label":"Width","tier":"presentation"},"coefADefault":{"type":"number","default":0.6,"label":"Coefficient A Default","tier":"domain"},"kind":{"type":"string","default":"predator-prey","label":"Interaction Family","description":"Which coupled dynamics govern the two quantities: predator-prey (oscillating cycles), epidemic (S and I with transmission and recovery), or kinetics (A decaying into B).","synonyms":"predator prey, Lotka-Volterra, SIR, epidemic, reaction kinetics, coupled ODE","tier":"domain"},"rosterSource":{"type":"string","default":"config","label":"Roster Source","description":"Where the system definition (taskText, kind, pLabel, qLabel, pStart, qStart, coefALabel, coefBLabel) comes from: config reads those knobs at INIT; event waits for ROSTER_LOADED and takes them from its payload.","tier":"domain","values":["config","event"]},"pColor":{"type":"string","default":"series-1","label":"P Color","tier":"presentation"},"coefAMin":{"type":"number","default":0,"label":"Coefficient A Min","tier":"domain"},"coefAMax":{"type":"number","default":2,"label":"Coefficient A Max","tier":"domain"},"gridStep":{"type":"number","default":50,"label":"Grid Step","tier":"presentation"},"autoRun":{"type":"boolean","default":true,"label":"Auto Run","description":"Whether the simulation starts running immediately on load.","tier":"domain"},"pLabel":{"type":"string","default":"Prey","label":"P Label","description":"Display name of the first quantity.","tier":"domain"},"summary":{"type":"string","default":"","label":"Concept","description":"One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line.","tier":"presentation"},"shockDownLabel":{"type":"string","default":"− Prey cull","label":"Shock Down Label","tier":"presentation"},"qColor":{"type":"string","default":"series-2","label":"Q Color","tier":"presentation"},"coefAStep":{"type":"number","default":0.01,"label":"Coefficient A Step","tier":"presentation"},"coefD":{"type":"number","default":0.4,"label":"Coefficient D","description":"Predator-prey only: predator death rate.","tier":"domain"},"timeScale":{"type":"number","default":1,"label":"Time Scale","description":"Multiplier on the integration step; raise it to fast-forward the dynamics.","tier":"domain"},"coefC":{"type":"number","default":0.5,"label":"Coefficient C","description":"Predator-prey only: conversion efficiency of predation into predator growth.","tier":"domain"},"taskText":{"type":"string","default":"Run the system, retune the rates, and shock it — watch how the two quantities push and pull each other.","label":"Task Text","description":"One-sentence statement of what to explore.","tier":"domain"},"pStart":{"type":"number","default":120,"label":"P Start","tier":"domain"},"coefALabel":{"type":"string","default":"Prey growth rate","label":"Coefficient A Label","description":"Display label of the first governing rate slider.","tier":"domain"},"coefBMin":{"type":"number","default":0,"label":"Coefficient B Min","tier":"domain"},"qLabel":{"type":"string","default":"Predators","label":"Q Label","description":"Display name of the second quantity.","tier":"domain"},"height":{"type":"number","default":360,"label":"Height","tier":"presentation"},"duration":{"type":"number","default":30,"label":"Duration","description":"Simulated seconds before the run stops automatically.","tier":"domain"},"shockUpLabel":{"type":"string","default":"+ Prey burst","label":"Shock Up Label","tier":"presentation"},"matchMode":{"type":"string","default":"","label":"Match Mode","description":"When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT (or on ROSTER_LOADED when rosterSource is event).","tier":"presentation"},"coefBLabel":{"type":"string","default":"Predation rate","label":"Coefficient B Label","description":"Display label of the second governing rate slider.","tier":"domain"},"coefBMax":{"type":"number","default":2,"label":"Coefficient B Max","tier":"domain"},"title":{"type":"string","default":"Coupled System","label":"Title","description":"The instrument's name, the header's one hero.","tier":"presentation"},"shockSize":{"type":"number","default":40,"label":"Shock Size","description":"How much of the first quantity a shock button injects or removes.","tier":"domain"},"coefBStep":{"type":"number","default":0.01,"label":"Coefficient B Step","tier":"presentation"},"qStart":{"type":"number","default":40,"label":"Q Start","tier":"domain"},"valueMax":{"type":"number","default":300,"label":"Value Max","description":"Upper bound of the chart's y axis.","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"CoupledSimPage","id":"pag_YY3X67HVXVXYXTGB3DY7A1HTSF","path":"/learn-coupled-sim","traits":[{"ref":"CoupledSimSim","refId":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"}]}],"types":{"CoupledCurve":[{"name":"label","type":"string"},{"name":"color","type":"string"},{"name":"samples","type":"[object]","required":true,"properties":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]}],"CoupledSample":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_6E0TF91FEWQQE00SGQBJDPTZFC":{"id":"ent_6E0TF91FEWQQE00SGQBJDPTZFC","kind":"entity","bakedName":"CoupledSimScene","curName":"CoupledSimScene","renames":[],"owner":"workspace"},"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ":{"id":"evt_0WK1JB4YNBFANGF9ERQ2J4MNTJ","kind":"event","bakedName":"ROSTER_LOADED","curName":"ROSTER_LOADED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_1WKB47CY3DF1PYFVKPAG6R0JPF":{"id":"evt_1WKB47CY3DF1PYFVKPAG6R0JPF","kind":"event","bakedName":"SHOCK","curName":"SHOCK","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_69M6NQ92KWH9Y78MVWW6FSRCYY":{"id":"evt_69M6NQ92KWH9Y78MVWW6FSRCYY","kind":"event","bakedName":"SPEED_SET","curName":"SPEED_SET","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_98EV3XKEWDQE6KDH00H1PGP7NV":{"id":"evt_98EV3XKEWDQE6KDH00H1PGP7NV","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_AYFSCZNEB3Q5HX09JHPS31GADN":{"id":"evt_AYFSCZNEB3Q5HX09JHPS31GADN","kind":"event","bakedName":"TOGGLE_RUN","curName":"TOGGLE_RUN","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_C2E1EZG2PC1B631GMHZMCCT31W":{"id":"evt_C2E1EZG2PC1B631GMHZMCCT31W","kind":"event","bakedName":"PAUSE","curName":"PAUSE","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_ECWPQGRHBY8NZ8VRK0EEVT4F73":{"id":"evt_ECWPQGRHBY8NZ8VRK0EEVT4F73","kind":"event","bakedName":"RUN_TOGGLED","curName":"RUN_TOGGLED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_G8AQBN736RHKC68TKK9JHGXXZB":{"id":"evt_G8AQBN736RHKC68TKK9JHGXXZB","kind":"event","bakedName":"RUN","curName":"RUN","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_GY0BH1T5CR2PC0WV8YGPJCZA7T":{"id":"evt_GY0BH1T5CR2PC0WV8YGPJCZA7T","kind":"event","bakedName":"RESET","curName":"RESET","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_JS8X3FJNATANDAGPRDBFVJZW5Z":{"id":"evt_JS8X3FJNATANDAGPRDBFVJZW5Z","kind":"event","bakedName":"SET_A","curName":"SET_A","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_KDZ7ZVWEEC776CX110MFFA0P1D":{"id":"evt_KDZ7ZVWEEC776CX110MFFA0P1D","kind":"event","bakedName":"SET_B","curName":"SET_B","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_KHRXC6W2M11A0GRDZP72TECTVB":{"id":"evt_KHRXC6W2M11A0GRDZP72TECTVB","kind":"event","bakedName":"SIM_RESET","curName":"SIM_RESET","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_M6VR2KF1C2GP15A91VME5NXRCH":{"id":"evt_M6VR2KF1C2GP15A91VME5NXRCH","kind":"event","bakedName":"COEFS_CHANGED","curName":"COEFS_CHANGED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_MMXDYD3Z8WZMEECW29ANCH4GAG":{"id":"evt_MMXDYD3Z8WZMEECW29ANCH4GAG","kind":"event","bakedName":"MODE_SELECTED","curName":"MODE_SELECTED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"evt_RTXM0AFRRNWCATDWSNN139TSRZ":{"id":"evt_RTXM0AFRRNWCATDWSNN139TSRZ","kind":"event","bakedName":"SHOCK_APPLIED","curName":"SHOCK_APPLIED","renames":[],"owner":"workspace","parent":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT"},"orb_F5B3EJDX6VYKDKP9W6QP2BP55H":{"id":"orb_F5B3EJDX6VYKDKP9W6QP2BP55H","kind":"orbital","bakedName":"CoupledSimOrbital","curName":"CoupledSimOrbital","renames":[],"owner":"workspace"},"pag_YY3X67HVXVXYXTGB3DY7A1HTSF":{"id":"pag_YY3X67HVXVXYXTGB3DY7A1HTSF","kind":"page","bakedName":"CoupledSimPage","curName":"CoupledSimPage","renames":[],"owner":"workspace"},"trt_B20AJJEDAH6N8JVJ3QD8F19JWT":{"id":"trt_B20AJJEDAH6N8JVJ3QD8F19JWT","kind":"trait","bakedName":"CoupledSimSim","curName":"CoupledSimSim","renames":[],"owner":"workspace"}}}}
|