@almadar/std 16.254.0 → 16.255.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 +10 -10
- package/behaviors/lolo/agent/evals/eval-agent-builder.lolo +15 -8
- package/behaviors/lolo/agent/organisms/std-agent-builder.lolo +6 -5
- 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-planner.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-pool.orb +1 -1
- 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 -1
- 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-exact-check.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-infer.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-search.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 +1 -1
- package/dist/behaviors-embeddings.json +1 -1
- package/dist/knob-embeddings.hash.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"std-worldmap-board-2d","version":"1.0.0","description":"2D isometric overworld-travel board FRAME: composes grid-tactics (units authority) + round-flow (win/lose) + gold + a player-intent/render trait onto one shared GameState with an isometric canvas-2d render. Games consume this molecule and supply theme/assets/units/tiles/features via config.","orbitals":[{"name":"WorldMapBoard2DOrbital","id":"orb_GFPCS9PHE28Q10H9ZXVMC1Q17E","uses":[{"from":"std/behaviors/std-grid-tactics","as":"Tactics"},{"from":"std/behaviors/std-round-flow","as":"Round"},{"from":"std/behaviors/std-gold","as":"Gold"}],"entity":{"name":"GameState","id":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"units","type":"array","default":[{"id":"hero","position":{"x":0,"y":0},"x":0,"y":0,"z":0,"team":"player","health":3,"maxHealth":3,"unitType":"hero","name":"Hero","animation":"idle","frame":0,"sprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png","role":"player","category":"unit","animations":["idle"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"player-unit","thumbnailUrl":""}},{"id":"guard","position":{"x":3,"y":3},"x":3,"y":3,"z":0,"team":"enemy","health":3,"maxHealth":3,"unitType":"guard","name":"Guard","animation":"idle","frame":0,"sprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png","role":"enemy","category":"unit","animations":["idle"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"enemy-unit","thumbnailUrl":""}}],"items":{"type":"object","properties":{"position":{"name":"position","type":"object","required":false,"properties":{"x":{"name":"x","type":"number","required":true},"y":{"name":"y","type":"number","required":true}}},"maxHealth":{"name":"maxHealth","type":"number","required":false},"x":{"name":"x","type":"number","required":false},"animation":{"name":"animation","type":"string","required":false},"sprite":{"name":"sprite","type":"object","required":false,"properties":{"dimension":{"name":"dimension","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}}}},"team":{"name":"team","type":"string","required":false,"values":["player","enemy","neutral"]},"y":{"name":"y","type":"number","required":false},"frame":{"name":"frame","type":"number","required":false},"id":{"name":"id","type":"string","required":true},"name":{"name":"name","type":"string","required":false},"health":{"name":"health","type":"number","required":false},"z":{"name":"z","type":"number","required":false},"unitType":{"name":"unitType","type":"string","required":false}}}},{"name":"tiles","type":"array","default":[{"id":"t-0-0","x":0,"y":0,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-0-1","x":0,"y":1,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-0-2","x":0,"y":2,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-0-3","x":0,"y":3,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-1-0","x":1,"y":0,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-1-1","x":1,"y":1,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-1-2","x":1,"y":2,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-1-3","x":1,"y":3,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-2-0","x":2,"y":0,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-2-1","x":2,"y":1,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-2-2","x":2,"y":2,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-2-3","x":2,"y":3,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-3-0","x":3,"y":0,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-3-1","x":3,"y":1,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-3-2","x":3,"y":2,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-3-3","x":3,"y":3,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}}],"items":{"type":"object","properties":{"y":{"name":"y","type":"number","required":true},"passable":{"name":"passable","type":"boolean","required":false},"id":{"name":"id","type":"string","required":false},"terrain":{"name":"terrain","type":"string","required":false},"x":{"name":"x","type":"number","required":true},"terrainSprite":{"name":"terrainSprite","type":"object","required":false,"properties":{"variant":{"name":"variant","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"sprite":{"name":"sprite","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false}}}}}},{"name":"result","type":"string","default":"none"},{"name":"gold","type":"number","default":0},{"name":"selectedHeroId","type":"string","default":""},{"name":"validMoves","type":"array","default":[],"items":{"type":"object","properties":{"y":{"name":"y","type":"number","required":true},"x":{"name":"x","type":"number","required":true}}}},{"name":"waypoints","type":"array","default":[],"items":{"type":"string"}},{"name":"turn","type":"number","default":0},{"name":"effects","type":"array","default":[],"items":{"type":"object","properties":{"y":{"name":"y","type":"number","required":true},"x":{"name":"x","type":"number","required":true},"ttl":{"name":"ttl","type":"number","required":true},"key":{"name":"key","type":"string","required":true}}}}],"shared":true},"traits":[{"ref":"Tactics.traits.GridTactics","id":"trt_5E5P4WQW9NY4TTWQ9N428W0A5Y","name":"TacticsAuthority","linkedEntity":"GameState","linkedEntityId":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","config":{"attackDamage":{"type":"unknown","default":1},"tiles":{"type":"unknown","default":[]},"running":{"type":"unknown","default":true},"gridWidth":{"type":"unknown","default":4},"gridHeight":{"type":"unknown","default":4},"units":{"type":"unknown","default":[{"id":"hero","position":{"x":0,"y":0},"x":0,"y":0,"z":0,"team":"player","health":3,"maxHealth":3,"unitType":"hero","name":"Hero","animation":"idle","frame":0,"sprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png","role":"player","category":"unit","animations":["idle"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"player-unit","thumbnailUrl":""}},{"id":"guard","position":{"x":3,"y":3},"x":3,"y":3,"z":0,"team":"enemy","health":3,"maxHealth":3,"unitType":"guard","name":"Guard","animation":"idle","frame":0,"sprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png","role":"enemy","category":"unit","animations":["idle"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"enemy-unit","thumbnailUrl":""}}]}},"listens":[{"event":"ATTACK","triggers":"ATTACK","source":{"kind":"trait","trait":"WorldMapIntent"}},{"event":"MOVE","triggers":"MOVE","source":{"kind":"trait","trait":"WorldMapIntent"}}]},{"ref":"Round.traits.RoundFlow","id":"trt_0AJ7SA4ZA4FN2DKD4VMRR3DZKK","name":"RoundLogic","linkedEntity":"GameState","linkedEntityId":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","config":{"running":{"type":"unknown","default":true}},"listens":[{"event":"UNITS_CHANGED","triggers":"UNITS_CHANGED","source":{"kind":"trait","trait":"TacticsAuthority"}}]},{"ref":"Gold.traits.GoldMine","id":"trt_D12KGQCESK7CSKJ7V096CBGNQF","name":"GoldAuthority","linkedEntity":"GameState","linkedEntityId":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","config":{"running":{"type":"unknown","default":true},"startGold":{"type":"unknown","default":0},"yieldAmount":{"type":"unknown","default":25}},"listens":[{"event":"MINE_HIT","triggers":"MINE_HIT","source":{"kind":"trait","trait":"WorldMapIntent"}}]},{"name":"WorldMapIntent","id":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B","effectRow":[{"kind":"emit","resource":"ATTACK"},{"kind":"emit","resource":"MINE_HIT"},{"kind":"emit","resource":"MOVE"},{"kind":"render-ui","resource":"main"},{"kind":"render-ui","resource":"main","site":"tick"},{"kind":"set","resource":"@entity.effects"},{"kind":"set","resource":"@entity.selectedHeroId"},{"kind":"set","resource":"@entity.turn"},{"kind":"set","resource":"@entity.validMoves"},{"kind":"set","resource":"@entity.waypoints"},{"kind":"ticks","site":"tick"}],"category":"interaction","linkedEntity":"GameState","linkedEntityId":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","entityRefIds":{"GameState":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W"},"emits":[{"event":"HERO_SELECT","eventId":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","description":"Emits UI:{unitClickEvent} with { unitId } on hero selection or attack-target click","tier":"domain","scope":"external","payloadSchema":[{"name":"unitId","type":"string","required":true}]},{"event":"HERO_MOVE","eventId":"evt_9X0WZ0AG1T80X9ESAGZZG5765K","description":"Emits UI:{tileClickEvent} with { x, y }","tier":"domain","scope":"external","payloadSchema":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"event":"ADVANCE_TURN","eventId":"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE","description":"Emits UI:{advanceTurnEvent} with {} when the player passes the turn without moving","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string"}]},{"event":"MOVE","eventId":"evt_HYGHSKGJYG9F80TVVAE5AZJEMW","description":"Hero travel intent applied by the grid-tactics authority","tier":"domain","scope":"external","payloadSchema":[{"name":"unitId","type":"string","required":true},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"event":"ATTACK","eventId":"evt_35ZNM1FJPGSB8ASZGDSJWYJC22","description":"Hero attack intent applied by the grid-tactics authority","tier":"domain","scope":"external","payloadSchema":[{"name":"targetId","type":"string","required":true}]},{"event":"MINE_HIT","eventId":"evt_0851N9ZGG6R833PD2TT9SZEAMC","description":"Hero landed on a gold-mine feature tile; the gold atom adds its yield","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string"}]}],"stateMachine":{"states":[{"name":"playing","isInitial":true}],"events":[{"key":"INIT","id":"evt_2E6VM7QAMQNABT9BWN1S79JJFZ","name":"Initialize"},{"key":"HERO_SELECT","id":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","name":"Hero Select","description":"Emits UI:{unitClickEvent} with { unitId } on hero selection or attack-target click","tier":"domain","payloadSchema":[{"name":"unitId","type":"string","required":true}]},{"key":"HERO_MOVE","id":"evt_9X0WZ0AG1T80X9ESAGZZG5765K","name":"Hero Move","description":"Emits UI:{tileClickEvent} with { x, y }","tier":"domain","payloadSchema":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"key":"ADVANCE_TURN","id":"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE","name":"Advance Turn","description":"Emits UI:{advanceTurnEvent} with {} when the player passes the turn without moving","tier":"domain","payloadSchema":[{"name":"id","type":"string"}]},{"key":"MOVE","id":"evt_HYGHSKGJYG9F80TVVAE5AZJEMW","name":"Move","description":"Hero travel intent applied by the grid-tactics authority","tier":"domain","payloadSchema":[{"name":"unitId","type":"string","required":true},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"key":"ATTACK","id":"evt_35ZNM1FJPGSB8ASZGDSJWYJC22","name":"Attack","description":"Hero attack intent applied by the grid-tactics authority","tier":"domain","payloadSchema":[{"name":"targetId","type":"string","required":true}]},{"key":"MINE_HIT","id":"evt_0851N9ZGG6R833PD2TT9SZEAMC","name":"Mine Hit","description":"Hero landed on a gold-mine feature tile; the gold atom adds its yield","tier":"domain","payloadSchema":[{"name":"id","type":"string"}]}],"transitions":[{"from":"playing","to":"playing","event":"INIT","eventId":"evt_2E6VM7QAMQNABT9BWN1S79JJFZ","effects":[["set","@entity.selectedHeroId",""],["set","@entity.validMoves",[]],["set","@entity.waypoints",[]],["set","@entity.turn",0],["set","@entity.effects",[]],["render-ui","main",{"type":"game-shell","fontFamily":"@config.fontFamily","backgroundAsset":"@config.backgroundAsset","hudBackgroundAsset":"@config.hudBackgroundAsset","hud":{"type":"stack","direction":"horizontal","gap":"md","justify":"between","children":[{"type":"game-hud","stats":["array/concat",[{"label":"Region","value":"@config.region","iconUrl":"@config.regionIconAsset"},{"label":"Turn","value":"@entity.turn","iconUrl":"@config.turnIconAsset"},{"label":"Gold","value":"@entity.gold","iconUrl":"@config.goldIconAsset"}],"@config.extraStats"]},{"type":"stack","direction":"horizontal","gap":"xs","align":"center","children":[{"type":"icon","name":"map-pin"},{"type":"typography","variant":"caption","content":"Waypoints"}]}]},"addons":{"type":"stack","direction":"vertical","gap":"sm","children":["array/concat",[{"type":"button","action":"ADVANCE_TURN","label":"Pass Turn","iconAsset":"@config.travelIconAsset","variant":"primary"}],"@config.extraAddons"]},"overlay":["if",["!=","@entity.result","none"],{"type":"game-menu","title":["if",["==","@entity.result","victory"],"VICTORY","DEFEAT"],"subtitle":["if",["==","@entity.result","victory"],"The realm is secured","Your heroes have fallen"],"options":[]},null],"children":[{"type":"canvas","fit":true,"camera":{"pos":{"x":["/",["+",["array/min","@entity.tiles","x"],["array/max","@entity.tiles","x"]],2],"y":["/",["+",["array/min","@entity.tiles","y"],["array/max","@entity.tiles","y"]],2]}},"projection":"isometric","showMinimap":true,"tileClickEvent":"HERO_MOVE","unitClickEvent":"HERO_SELECT","children":[{"type":"draw-shape-layer","items":["array/map","@entity.tiles",["fn","t",{"type":"draw-shape","shape":"cell","position":{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"fill":"#5c94fc","stroke":"rgba(255,255,255,0.35)","strokeWidth":1}]]},{"type":"draw-sprite-layer","items":["array/filter",["array/map","@entity.tiles",["fn","t",{"type":"draw-sprite","position":{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"asset":["if",["validate/required",["object/get",["object/get","@t","terrainSprite"],"url"]],["object/get","@t","terrainSprite"],["object/get",["object/get","@config.assetManifest","terrains"],["object/get","@t","terrain"]]],"anchor":"center","width":0.5,"height":0.5}]],["fn","s",["validate/required",["object/get",["object/get","@s","asset"],"url"]]]]},{"type":"draw-sprite-layer","items":["array/map","@config.features",["fn","f",{"type":"draw-sprite","position":{"x":["object/get","@f","x"],"y":["object/get","@f","y"]},"asset":["object/get","@f","sprite"]}]]},{"type":"draw-shape-layer","items":["array/map","@entity.validMoves",["fn","m",{"type":"draw-shape","shape":"cell","position":{"x":["object/get","@m","x"],"y":["object/get","@m","y"]},"fill":"rgba(74,222,128,0.4)"}]]},{"type":"draw-shape-layer","items":["array/map",["array/filter","@entity.units",["fn","u",["==",["object/get","@u","id"],"@entity.selectedHeroId"]]],["fn","u",{"type":"draw-shape","shape":"ellipse","position":["object/get","@u","position"],"radiusX":0.5,"radiusY":0.2,"stroke":"rgba(0,200,255,0.8)","strokeWidth":3}]]},{"type":"draw-sprite-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-sprite","position":["object/get","@u","position"],"asset":["if",["validate/required",["object/get",["object/get","@u","sprite"],"url"]],["object/get","@u","sprite"],["object/get",["object/get","@config.assetManifest","units"],["object/get","@u","unitType"]]],"id":["object/get","@u","id"],"anchor":"ground","width":0.5,"height":0.5}]]},{"type":"draw-shape-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-shape","shape":"rect","position":["object/get","@u","position"],"anchor":"ground","offsetX":-0.25,"offsetY":-0.6,"width":0.5,"height":0.12,"fill":"rgba(0,0,0,0.6)"}]]},{"type":"draw-shape-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-shape","shape":"rect","position":["object/get","@u","position"],"anchor":"ground","offsetX":-0.25,"offsetY":-0.6,"width":["*",0.5,["/",["object/get","@u","health"],["object/get","@u","maxHealth"]]],"height":0.12,"fill":"#22c55e"}]]},{"type":"draw-text-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-text","text":["object/get","@u","name"],"position":["object/get","@u","position"],"offsetY":-0.85,"color":"#ffffff"}]]},{"type":"draw-sprite-layer","items":["array/map","@entity.effects",["fn","e",{"type":"draw-sprite","position":{"x":["object/get","@e","x"],"y":["object/get","@e","y"]},"asset":["object/get",["object/get","@config.assetManifest","effects"],["object/get","@e","key"]]}]]}]}]}]]},{"from":"playing","to":"playing","event":"HERO_SELECT","eventId":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","guard":["and",["==","@entity.result","none"],["==",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"team"],"player"]],"effects":[["set","@entity.selectedHeroId","@payload.unitId"],["set","@entity.validMoves",["array/map",["array/filter","@entity.tiles",["fn","t",["and",["grid/in-bounds",{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"@config.gridWidth","@config.gridHeight"],["and",["<=",["grid/manhattan-distance",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"position"],{"x":["object/get","@t","x"],"y":["object/get","@t","y"]}],"@config.movementRange"],["and",["==",["object/get","@t","passable"],true],["==",["array/len",["array/filter","@entity.units",["fn","u",["and",["==",["object/get",["object/get","@u","position"],"x"],["object/get","@t","x"]],["==",["object/get",["object/get","@u","position"],"y"],["object/get","@t","y"]]]]]],0]]]]]],["fn","t",{"x":["object/get","@t","x"],"y":["object/get","@t","y"]}]]],["set","@entity.waypoints",[]]]},{"from":"playing","to":"playing","event":"HERO_MOVE","eventId":"evt_9X0WZ0AG1T80X9ESAGZZG5765K","guard":["and",["==","@entity.result","none"],["and",["!=","@entity.selectedHeroId",""],["and",["grid/in-bounds",{"x":"@payload.x","y":"@payload.y"},"@config.gridWidth","@config.gridHeight"],["and",["<=",["grid/manhattan-distance",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@entity.selectedHeroId"]]],"position"],{"x":"@payload.x","y":"@payload.y"}],"@config.movementRange"],["and",["==",["object/get",["array/find","@entity.tiles",["fn","t",["and",["==",["object/get","@t","x"],"@payload.x"],["==",["object/get","@t","y"],"@payload.y"]]]],"passable"],true],["==",["array/len",["array/filter","@entity.units",["fn","u",["and",["==",["object/get",["object/get","@u","position"],"x"],"@payload.x"],["==",["object/get",["object/get","@u","position"],"y"],"@payload.y"]]]]],0]]]]]],"effects":[["emit","MOVE",{"unitId":"@entity.selectedHeroId","x":"@payload.x","y":"@payload.y"}],["if",["==",["object/get",["array/find","@config.features",["fn","f",["and",["==",["object/get","@f","x"],"@payload.x"],["and",["==",["object/get","@f","y"],"@payload.y"],["==",["object/get","@f","type"],"gold_mine"]]]]],"type"],"gold_mine"],["emit","MINE_HIT",{"id":""}],null],["set","@entity.selectedHeroId",""],["set","@entity.validMoves",[]]]},{"from":"playing","to":"playing","event":"HERO_SELECT","eventId":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","guard":["and",["==","@entity.result","none"],["and",["!=","@entity.selectedHeroId",""],["and",["==",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"team"],"enemy"],["==",["grid/manhattan-distance",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@entity.selectedHeroId"]]],"position"],["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"position"]],1]]]],"effects":[["emit","ATTACK",{"targetId":"@payload.unitId"}],["set","@entity.effects",["array/append","@entity.effects",{"key":"slash","x":["object/get",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"position"],"x"],"y":["object/get",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"position"],"y"],"ttl":4}]],["set","@entity.selectedHeroId",""],["set","@entity.validMoves",[]],["set","@entity.turn",["+","@entity.turn",1]]]},{"from":"playing","to":"playing","event":"ADVANCE_TURN","eventId":"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE","guard":["==","@entity.result","none"],"effects":[["set","@entity.turn",["+","@entity.turn",1]],["set","@entity.selectedHeroId",""],["set","@entity.validMoves",[]]]}]},"ticks":[{"name":"renderTick","interval":100,"effects":[["render-ui","main",{"type":"game-shell","fontFamily":"@config.fontFamily","backgroundAsset":"@config.backgroundAsset","hudBackgroundAsset":"@config.hudBackgroundAsset","hud":{"type":"stack","direction":"horizontal","gap":"md","justify":"between","children":[{"type":"game-hud","stats":["array/concat",[{"label":"Region","value":"@config.region","iconUrl":"@config.regionIconAsset"},{"label":"Turn","value":"@entity.turn","iconUrl":"@config.turnIconAsset"},{"label":"Gold","value":"@entity.gold","iconUrl":"@config.goldIconAsset"}],"@config.extraStats"]},{"type":"stack","direction":"horizontal","gap":"xs","align":"center","children":[{"type":"icon","name":"map-pin"},{"type":"typography","variant":"caption","content":"Waypoints"}]}]},"addons":{"type":"stack","direction":"vertical","gap":"sm","children":["array/concat",[{"type":"button","action":"ADVANCE_TURN","label":"Pass Turn","iconAsset":"@config.travelIconAsset","variant":"primary"}],"@config.extraAddons"]},"overlay":["if",["!=","@entity.result","none"],{"type":"game-menu","title":["if",["==","@entity.result","victory"],"VICTORY","DEFEAT"],"subtitle":["if",["==","@entity.result","victory"],"The realm is secured","Your heroes have fallen"],"options":[]},null],"children":[{"type":"canvas","fit":true,"camera":{"pos":{"x":["/",["+",["array/min","@entity.tiles","x"],["array/max","@entity.tiles","x"]],2],"y":["/",["+",["array/min","@entity.tiles","y"],["array/max","@entity.tiles","y"]],2]}},"projection":"isometric","showMinimap":true,"tileClickEvent":"HERO_MOVE","unitClickEvent":"HERO_SELECT","children":[{"type":"draw-shape-layer","items":["array/map","@entity.tiles",["fn","t",{"type":"draw-shape","shape":"cell","position":{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"fill":"#5c94fc","stroke":"rgba(255,255,255,0.35)","strokeWidth":1}]]},{"type":"draw-sprite-layer","items":["array/filter",["array/map","@entity.tiles",["fn","t",{"type":"draw-sprite","position":{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"asset":["if",["validate/required",["object/get",["object/get","@t","terrainSprite"],"url"]],["object/get","@t","terrainSprite"],["object/get",["object/get","@config.assetManifest","terrains"],["object/get","@t","terrain"]]],"anchor":"center","width":0.5,"height":0.5}]],["fn","s",["validate/required",["object/get",["object/get","@s","asset"],"url"]]]]},{"type":"draw-sprite-layer","items":["array/map","@config.features",["fn","f",{"type":"draw-sprite","position":{"x":["object/get","@f","x"],"y":["object/get","@f","y"]},"asset":["object/get","@f","sprite"]}]]},{"type":"draw-shape-layer","items":["array/map","@entity.validMoves",["fn","m",{"type":"draw-shape","shape":"cell","position":{"x":["object/get","@m","x"],"y":["object/get","@m","y"]},"fill":"rgba(74,222,128,0.4)"}]]},{"type":"draw-shape-layer","items":["array/map",["array/filter","@entity.units",["fn","u",["==",["object/get","@u","id"],"@entity.selectedHeroId"]]],["fn","u",{"type":"draw-shape","shape":"ellipse","position":["object/get","@u","position"],"radiusX":0.5,"radiusY":0.2,"stroke":"rgba(0,200,255,0.8)","strokeWidth":3}]]},{"type":"draw-sprite-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-sprite","position":["object/get","@u","position"],"asset":["if",["validate/required",["object/get",["object/get","@u","sprite"],"url"]],["object/get","@u","sprite"],["object/get",["object/get","@config.assetManifest","units"],["object/get","@u","unitType"]]],"id":["object/get","@u","id"],"anchor":"ground","width":0.5,"height":0.5}]]},{"type":"draw-shape-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-shape","shape":"rect","position":["object/get","@u","position"],"anchor":"ground","offsetX":-0.25,"offsetY":-0.6,"width":0.5,"height":0.12,"fill":"rgba(0,0,0,0.6)"}]]},{"type":"draw-shape-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-shape","shape":"rect","position":["object/get","@u","position"],"anchor":"ground","offsetX":-0.25,"offsetY":-0.6,"width":["*",0.5,["/",["object/get","@u","health"],["object/get","@u","maxHealth"]]],"height":0.12,"fill":"#22c55e"}]]},{"type":"draw-text-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-text","text":["object/get","@u","name"],"position":["object/get","@u","position"],"offsetY":-0.85,"color":"#ffffff"}]]},{"type":"draw-sprite-layer","items":["array/map","@entity.effects",["fn","e",{"type":"draw-sprite","position":{"x":["object/get","@e","x"],"y":["object/get","@e","y"]},"asset":["object/get",["object/get","@config.assetManifest","effects"],["object/get","@e","key"]]}]]}]}]}]]}],"config":{"gridWidth":{"type":"number","default":4,"label":"Grid Width","description":"Grid column count (matches TacticsAuthority.gridWidth).","tier":"presentation"},"extraStats":{"type":"[HudStat]","default":[],"label":"Extra HUD Stats","description":"Board-specific HUD stats appended after Region/Turn/Gold.","tier":"presentation","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":false},"value":{"name":"value","type":"number","required":false}}}},"turnIconAsset":{"type":"Asset","default":{},"label":"Turn Icon Asset","description":"Icon sprite for the Turn HUD stat.","tier":"presentation","properties":{"name":{"name":"name","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"variant":{"name":"variant","type":"string","required":false},"style":{"name":"style","type":"string","required":false}}},"extraAddons":{"type":"[HudButton]","default":[],"label":"Extra Addon Buttons","description":"Board-specific action buttons appended after Pass Turn.","tier":"presentation","items":{"type":"object","properties":{"variant":{"name":"variant","type":"string","required":false},"type":{"name":"type","type":"string","required":false},"iconAsset":{"name":"iconAsset","type":"object","required":false,"properties":{"name":{"name":"name","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"category":{"name":"category","type":"string","required":false}}},"label":{"name":"label","type":"string","required":false},"action":{"name":"action","type":"string","required":false}}}},"goldIconAsset":{"type":"Asset","default":{},"label":"Gold Icon Asset","description":"Icon sprite for the Gold HUD stat.","tier":"presentation","properties":{"aspect":{"name":"aspect","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"sprite":{"name":"sprite","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false}}},"features":{"type":"[Feature]","default":[],"label":"Features","description":"Board features — gold mines, portals, and other decorative/interactive map markers.","tier":"domain","items":{"type":"object","properties":{"sprite":{"name":"sprite","type":"object","required":false,"properties":{"style":{"name":"style","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"atlas":{"name":"atlas","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false}}},"y":{"name":"y","type":"number","required":true},"x":{"name":"x","type":"number","required":true},"id":{"name":"id","type":"string","required":false},"type":{"name":"type","type":"string","required":true}}}},"hudBackgroundAsset":{"type":"Asset","default":{},"label":"HUD Background Asset","description":"HUD panel background sprite (theme chrome).","tier":"presentation","properties":{"name":{"name":"name","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"aspect":{"name":"aspect","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"category":{"name":"category","type":"string","required":false}}},"assetManifest":{"type":"AssetManifest","default":{"terrains":{},"units":{},"features":{},"effects":{}},"label":"Asset Manifest","description":"Terrain/unit/feature/effect sprite manifest.","tier":"presentation","properties":{"effects":{"name":"effects","type":"object","required":false,"items":{"type":"object","properties":{"url":{"name":"url","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"dimension":{"name":"dimension","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false}}}},"features":{"name":"features","type":"object","required":false,"items":{"type":"object","properties":{"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"aspect":{"name":"aspect","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"role":{"name":"role","type":"string","required":false}}}},"terrains":{"name":"terrains","type":"object","required":false,"items":{"type":"object","properties":{"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"dimension":{"name":"dimension","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false}}}},"units":{"name":"units","type":"object","required":false,"items":{"type":"object","properties":{"role":{"name":"role","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false}}}}}},"gridHeight":{"type":"number","default":4,"label":"Grid Height","description":"Grid row count (matches TacticsAuthority.gridHeight).","tier":"presentation"},"travelIconAsset":{"type":"Asset","default":{},"label":"Travel Icon Asset","description":"Icon sprite for the Pass Turn button.","tier":"presentation","properties":{"variant":{"name":"variant","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"style":{"name":"style","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"category":{"name":"category","type":"string","required":false}}},"regionIconAsset":{"type":"Asset","default":{},"label":"Region Icon Asset","description":"Icon sprite for the Region HUD stat.","tier":"presentation","properties":{"dimension":{"name":"dimension","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"atlas":{"name":"atlas","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"style":{"name":"style","type":"string","required":false}}},"fontFamily":{"type":"string","default":"future","label":"Font Family","description":"game-shell fontFamily prop (theme chrome).","tier":"presentation"},"backgroundAsset":{"type":"Asset","default":{},"label":"Background Asset","description":"Game-shell background panel sprite (theme chrome).","tier":"presentation","properties":{"atlas":{"name":"atlas","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"category":{"name":"category","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"role":{"name":"role","type":"string","required":false}}},"movementRange":{"type":"number","default":3,"label":"Movement Range","description":"Max manhattan distance the selected hero may travel in one move.","tier":"domain"},"region":{"type":"string","default":"Overworld","label":"Region","description":"Region name shown in the HUD.","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"WorldMapBoard2DPage","id":"pag_S84Y2H9Z4YZJFCDGRV0R8ABP9H","path":"/worldmap-board-2d","traits":[{"ref":"TacticsAuthority","refId":"trt_5E5P4WQW9NY4TTWQ9N428W0A5Y"},{"ref":"RoundLogic","refId":"trt_0AJ7SA4ZA4FN2DKD4VMRR3DZKK"},{"ref":"GoldAuthority","refId":"trt_D12KGQCESK7CSKJ7V096CBGNQF"},{"ref":"WorldMapIntent","refId":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"}]}],"types":{"Asset":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}],"AssetManifest":[{"name":"terrains","type":"Map<string,Asset>"},{"name":"units","type":"Map<string,Asset>"},{"name":"features","type":"Map<string,Asset>"},{"name":"effects","type":"Map<string,Asset>"}],"Effect":[{"name":"key","type":"string","required":true},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true},{"name":"ttl","type":"number","required":true}],"Feature":[{"name":"id","type":"string"},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true},{"name":"type","type":"string","required":true},{"name":"sprite","type":"object","properties":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]}],"HudButton":[{"name":"type","type":"string"},{"name":"action","type":"string"},{"name":"label","type":"string"},{"name":"variant","type":"string"},{"name":"iconAsset","type":"object","properties":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]}],"HudStat":[{"name":"label","type":"string"},{"name":"value","type":"number"}],"Tile":[{"name":"id","type":"string"},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true},{"name":"terrain","type":"string"},{"name":"terrainSprite","type":"object","properties":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]},{"name":"passable","type":"boolean"}],"Unit":[{"name":"id","type":"string","required":true},{"name":"position","type":"object","properties":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"z","type":"number"},{"name":"sprite","type":"object","properties":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]},{"name":"unitType","type":"string"},{"name":"name","type":"string"},{"name":"team","type":"string","values":["player","enemy","neutral"]},{"name":"health","type":"number"},{"name":"maxHealth","type":"number"},{"name":"animation","type":"string"},{"name":"frame","type":"number"}],"ValidMove":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_N0E8GE8CBK65SPSVZP4P2HZ74W":{"id":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","kind":"entity","bakedName":"GameState","curName":"GameState","renames":[],"owner":"workspace"},"evt_0851N9ZGG6R833PD2TT9SZEAMC":{"id":"evt_0851N9ZGG6R833PD2TT9SZEAMC","kind":"event","bakedName":"MINE_HIT","curName":"MINE_HIT","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_2E6VM7QAMQNABT9BWN1S79JJFZ":{"id":"evt_2E6VM7QAMQNABT9BWN1S79JJFZ","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_35ZNM1FJPGSB8ASZGDSJWYJC22":{"id":"evt_35ZNM1FJPGSB8ASZGDSJWYJC22","kind":"event","bakedName":"ATTACK","curName":"ATTACK","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_9X0WZ0AG1T80X9ESAGZZG5765K":{"id":"evt_9X0WZ0AG1T80X9ESAGZZG5765K","kind":"event","bakedName":"HERO_MOVE","curName":"HERO_MOVE","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE":{"id":"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE","kind":"event","bakedName":"ADVANCE_TURN","curName":"ADVANCE_TURN","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_HYGHSKGJYG9F80TVVAE5AZJEMW":{"id":"evt_HYGHSKGJYG9F80TVVAE5AZJEMW","kind":"event","bakedName":"MOVE","curName":"MOVE","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_J9W3X81X3DYHPHEG1M8HQQCKWD":{"id":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","kind":"event","bakedName":"HERO_SELECT","curName":"HERO_SELECT","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"orb_GFPCS9PHE28Q10H9ZXVMC1Q17E":{"id":"orb_GFPCS9PHE28Q10H9ZXVMC1Q17E","kind":"orbital","bakedName":"WorldMapBoard2DOrbital","curName":"WorldMapBoard2DOrbital","renames":[],"owner":"workspace"},"pag_S84Y2H9Z4YZJFCDGRV0R8ABP9H":{"id":"pag_S84Y2H9Z4YZJFCDGRV0R8ABP9H","kind":"page","bakedName":"WorldMapBoard2DPage","curName":"WorldMapBoard2DPage","renames":[],"owner":"workspace"},"trt_0AJ7SA4ZA4FN2DKD4VMRR3DZKK":{"id":"trt_0AJ7SA4ZA4FN2DKD4VMRR3DZKK","kind":"trait","bakedName":"RoundLogic","curName":"RoundLogic","renames":[],"owner":"workspace"},"trt_5E5P4WQW9NY4TTWQ9N428W0A5Y":{"id":"trt_5E5P4WQW9NY4TTWQ9N428W0A5Y","kind":"trait","bakedName":"TacticsAuthority","curName":"TacticsAuthority","renames":[],"owner":"workspace"},"trt_8CYTDZRX3NEHTWYPKE2W273Y4B":{"id":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B","kind":"trait","bakedName":"WorldMapIntent","curName":"WorldMapIntent","renames":[],"owner":"workspace"},"trt_D12KGQCESK7CSKJ7V096CBGNQF":{"id":"trt_D12KGQCESK7CSKJ7V096CBGNQF","kind":"trait","bakedName":"GoldAuthority","curName":"GoldAuthority","renames":[],"owner":"workspace"}}}}
|
|
1
|
+
{"name":"std-worldmap-board-2d","version":"1.0.0","description":"2D isometric overworld-travel board FRAME: composes grid-tactics (units authority) + round-flow (win/lose) + gold + a player-intent/render trait onto one shared GameState with an isometric canvas-2d render. Games consume this molecule and supply theme/assets/units/tiles/features via config.","orbitals":[{"name":"WorldMapBoard2DOrbital","id":"orb_GFPCS9PHE28Q10H9ZXVMC1Q17E","uses":[{"from":"std/behaviors/std-grid-tactics","as":"Tactics"},{"from":"std/behaviors/std-round-flow","as":"Round"},{"from":"std/behaviors/std-gold","as":"Gold"}],"entity":{"name":"GameState","id":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"units","type":"array","default":[{"id":"hero","position":{"x":0,"y":0},"x":0,"y":0,"z":0,"team":"player","health":3,"maxHealth":3,"unitType":"hero","name":"Hero","animation":"idle","frame":0,"sprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png","role":"player","category":"unit","animations":["idle"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"player-unit","thumbnailUrl":""}},{"id":"guard","position":{"x":3,"y":3},"x":3,"y":3,"z":0,"team":"enemy","health":3,"maxHealth":3,"unitType":"guard","name":"Guard","animation":"idle","frame":0,"sprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png","role":"enemy","category":"unit","animations":["idle"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"enemy-unit","thumbnailUrl":""}}],"items":{"type":"object","properties":{"team":{"name":"team","type":"string","required":false,"values":["player","enemy","neutral"]},"x":{"name":"x","type":"number","required":false},"name":{"name":"name","type":"string","required":false},"maxHealth":{"name":"maxHealth","type":"number","required":false},"position":{"name":"position","type":"object","required":false,"properties":{"y":{"name":"y","type":"number","required":true},"x":{"name":"x","type":"number","required":true}}},"health":{"name":"health","type":"number","required":false},"y":{"name":"y","type":"number","required":false},"id":{"name":"id","type":"string","required":true},"animation":{"name":"animation","type":"string","required":false},"sprite":{"name":"sprite","type":"object","required":false,"properties":{"dimension":{"name":"dimension","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"sprite":{"name":"sprite","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"url":{"name":"url","type":"string","required":false}}},"unitType":{"name":"unitType","type":"string","required":false},"z":{"name":"z","type":"number","required":false},"frame":{"name":"frame","type":"number","required":false}}}},{"name":"tiles","type":"array","default":[{"id":"t-0-0","x":0,"y":0,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-0-1","x":0,"y":1,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-0-2","x":0,"y":2,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-0-3","x":0,"y":3,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-1-0","x":1,"y":0,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-1-1","x":1,"y":1,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-1-2","x":1,"y":2,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-1-3","x":1,"y":3,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-2-0","x":2,"y":0,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-2-1","x":2,"y":1,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-2-2","x":2,"y":2,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-2-3","x":2,"y":3,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-3-0","x":3,"y":0,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-3-1","x":3,"y":1,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-3-2","x":3,"y":2,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}},{"id":"t-3-3","x":3,"y":3,"terrain":"grass","passable":true,"terrainSprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png","role":"tile","category":"terrain","animations":["static"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"grass","thumbnailUrl":""}}],"items":{"type":"object","properties":{"y":{"name":"y","type":"number","required":true},"terrainSprite":{"name":"terrainSprite","type":"object","required":false,"properties":{"sprite":{"name":"sprite","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"category":{"name":"category","type":"string","required":false}}},"id":{"name":"id","type":"string","required":false},"passable":{"name":"passable","type":"boolean","required":false},"terrain":{"name":"terrain","type":"string","required":false},"x":{"name":"x","type":"number","required":true}}}},{"name":"result","type":"string","default":"none"},{"name":"gold","type":"number","default":0},{"name":"selectedHeroId","type":"string","default":""},{"name":"validMoves","type":"array","default":[],"items":{"type":"object","properties":{"y":{"name":"y","type":"number","required":true},"x":{"name":"x","type":"number","required":true}}}},{"name":"waypoints","type":"array","default":[],"items":{"type":"string"}},{"name":"turn","type":"number","default":0},{"name":"effects","type":"array","default":[],"items":{"type":"object","properties":{"ttl":{"name":"ttl","type":"number","required":true},"key":{"name":"key","type":"string","required":true},"x":{"name":"x","type":"number","required":true},"y":{"name":"y","type":"number","required":true}}}}],"shared":true},"traits":[{"ref":"Tactics.traits.GridTactics","id":"trt_5E5P4WQW9NY4TTWQ9N428W0A5Y","name":"TacticsAuthority","linkedEntity":"GameState","linkedEntityId":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","config":{"units":{"type":"unknown","default":[{"id":"hero","position":{"x":0,"y":0},"x":0,"y":0,"z":0,"team":"player","health":3,"maxHealth":3,"unitType":"hero","name":"Hero","animation":"idle","frame":0,"sprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png","role":"player","category":"unit","animations":["idle"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"player-unit","thumbnailUrl":""}},{"id":"guard","position":{"x":3,"y":3},"x":3,"y":3,"z":0,"team":"enemy","health":3,"maxHealth":3,"unitType":"guard","name":"Guard","animation":"idle","frame":0,"sprite":{"url":"https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png","role":"enemy","category":"unit","animations":["idle"],"style":"vector","variant":"default","dimension":"2d","aspect":"1:1","name":"enemy-unit","thumbnailUrl":""}}]},"running":{"type":"unknown","default":true},"attackDamage":{"type":"unknown","default":1},"gridHeight":{"type":"unknown","default":4},"tiles":{"type":"unknown","default":[]},"gridWidth":{"type":"unknown","default":4}},"listens":[{"event":"ATTACK","triggers":"ATTACK","source":{"kind":"trait","trait":"WorldMapIntent"}},{"event":"MOVE","triggers":"MOVE","source":{"kind":"trait","trait":"WorldMapIntent"}}]},{"ref":"Round.traits.RoundFlow","id":"trt_0AJ7SA4ZA4FN2DKD4VMRR3DZKK","name":"RoundLogic","linkedEntity":"GameState","linkedEntityId":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","config":{"running":{"type":"unknown","default":true}},"listens":[{"event":"UNITS_CHANGED","triggers":"UNITS_CHANGED","source":{"kind":"trait","trait":"TacticsAuthority"}}]},{"ref":"Gold.traits.GoldMine","id":"trt_D12KGQCESK7CSKJ7V096CBGNQF","name":"GoldAuthority","linkedEntity":"GameState","linkedEntityId":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","config":{"startGold":{"type":"unknown","default":0},"running":{"type":"unknown","default":true},"yieldAmount":{"type":"unknown","default":25}},"listens":[{"event":"MINE_HIT","triggers":"MINE_HIT","source":{"kind":"trait","trait":"WorldMapIntent"}}]},{"name":"WorldMapIntent","id":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B","effectRow":[{"kind":"emit","resource":"ATTACK"},{"kind":"emit","resource":"MINE_HIT"},{"kind":"emit","resource":"MOVE"},{"kind":"render-ui","resource":"main"},{"kind":"render-ui","resource":"main","site":"tick"},{"kind":"set","resource":"@entity.effects"},{"kind":"set","resource":"@entity.selectedHeroId"},{"kind":"set","resource":"@entity.turn"},{"kind":"set","resource":"@entity.validMoves"},{"kind":"set","resource":"@entity.waypoints"},{"kind":"ticks","site":"tick"}],"category":"interaction","linkedEntity":"GameState","linkedEntityId":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","entityRefIds":{"GameState":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W"},"emits":[{"event":"HERO_SELECT","eventId":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","description":"Emits UI:{unitClickEvent} with { unitId } on hero selection or attack-target click","tier":"domain","scope":"external","payloadSchema":[{"name":"unitId","type":"string","required":true}]},{"event":"HERO_MOVE","eventId":"evt_9X0WZ0AG1T80X9ESAGZZG5765K","description":"Emits UI:{tileClickEvent} with { x, y }","tier":"domain","scope":"external","payloadSchema":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"event":"ADVANCE_TURN","eventId":"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE","description":"Emits UI:{advanceTurnEvent} with {} when the player passes the turn without moving","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string"}]},{"event":"MOVE","eventId":"evt_HYGHSKGJYG9F80TVVAE5AZJEMW","description":"Hero travel intent applied by the grid-tactics authority","tier":"domain","scope":"external","payloadSchema":[{"name":"unitId","type":"string","required":true},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"event":"ATTACK","eventId":"evt_35ZNM1FJPGSB8ASZGDSJWYJC22","description":"Hero attack intent applied by the grid-tactics authority","tier":"domain","scope":"external","payloadSchema":[{"name":"targetId","type":"string","required":true}]},{"event":"MINE_HIT","eventId":"evt_0851N9ZGG6R833PD2TT9SZEAMC","description":"Hero landed on a gold-mine feature tile; the gold atom adds its yield","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string"}]}],"stateMachine":{"states":[{"name":"playing","isInitial":true}],"events":[{"key":"INIT","id":"evt_2E6VM7QAMQNABT9BWN1S79JJFZ","name":"Initialize"},{"key":"HERO_SELECT","id":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","name":"Hero Select","description":"Emits UI:{unitClickEvent} with { unitId } on hero selection or attack-target click","tier":"domain","payloadSchema":[{"name":"unitId","type":"string","required":true}]},{"key":"HERO_MOVE","id":"evt_9X0WZ0AG1T80X9ESAGZZG5765K","name":"Hero Move","description":"Emits UI:{tileClickEvent} with { x, y }","tier":"domain","payloadSchema":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"key":"ADVANCE_TURN","id":"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE","name":"Advance Turn","description":"Emits UI:{advanceTurnEvent} with {} when the player passes the turn without moving","tier":"domain","payloadSchema":[{"name":"id","type":"string"}]},{"key":"MOVE","id":"evt_HYGHSKGJYG9F80TVVAE5AZJEMW","name":"Move","description":"Hero travel intent applied by the grid-tactics authority","tier":"domain","payloadSchema":[{"name":"unitId","type":"string","required":true},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"key":"ATTACK","id":"evt_35ZNM1FJPGSB8ASZGDSJWYJC22","name":"Attack","description":"Hero attack intent applied by the grid-tactics authority","tier":"domain","payloadSchema":[{"name":"targetId","type":"string","required":true}]},{"key":"MINE_HIT","id":"evt_0851N9ZGG6R833PD2TT9SZEAMC","name":"Mine Hit","description":"Hero landed on a gold-mine feature tile; the gold atom adds its yield","tier":"domain","payloadSchema":[{"name":"id","type":"string"}]}],"transitions":[{"from":"playing","to":"playing","event":"INIT","eventId":"evt_2E6VM7QAMQNABT9BWN1S79JJFZ","effects":[["set","@entity.selectedHeroId",""],["set","@entity.validMoves",[]],["set","@entity.waypoints",[]],["set","@entity.turn",0],["set","@entity.effects",[]],["render-ui","main",{"type":"game-shell","fontFamily":"@config.fontFamily","backgroundAsset":"@config.backgroundAsset","hudBackgroundAsset":"@config.hudBackgroundAsset","hud":{"type":"stack","direction":"horizontal","gap":"md","justify":"between","children":[{"type":"game-hud","stats":["array/concat",[{"label":"Region","value":"@config.region","iconUrl":"@config.regionIconAsset"},{"label":"Turn","value":"@entity.turn","iconUrl":"@config.turnIconAsset"},{"label":"Gold","value":"@entity.gold","iconUrl":"@config.goldIconAsset"}],"@config.extraStats"]},{"type":"stack","direction":"horizontal","gap":"xs","align":"center","children":[{"type":"icon","name":"map-pin"},{"type":"typography","variant":"caption","content":"Waypoints"}]}]},"addons":{"type":"stack","direction":"vertical","gap":"sm","children":["array/concat",[{"type":"button","action":"ADVANCE_TURN","label":"Pass Turn","iconAsset":"@config.travelIconAsset","variant":"primary"}],"@config.extraAddons"]},"overlay":["if",["!=","@entity.result","none"],{"type":"game-menu","title":["if",["==","@entity.result","victory"],"VICTORY","DEFEAT"],"subtitle":["if",["==","@entity.result","victory"],"The realm is secured","Your heroes have fallen"],"options":[]},null],"children":[{"type":"canvas","fit":true,"camera":{"pos":{"x":["/",["+",["array/min","@entity.tiles","x"],["array/max","@entity.tiles","x"]],2],"y":["/",["+",["array/min","@entity.tiles","y"],["array/max","@entity.tiles","y"]],2]}},"projection":"isometric","showMinimap":true,"tileClickEvent":"HERO_MOVE","unitClickEvent":"HERO_SELECT","children":[{"type":"draw-shape-layer","items":["array/map","@entity.tiles",["fn","t",{"type":"draw-shape","shape":"cell","position":{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"fill":"#5c94fc","stroke":"rgba(255,255,255,0.35)","strokeWidth":1}]]},{"type":"draw-sprite-layer","items":["array/filter",["array/map","@entity.tiles",["fn","t",{"type":"draw-sprite","position":{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"asset":["if",["validate/required",["object/get",["object/get","@t","terrainSprite"],"url"]],["object/get","@t","terrainSprite"],["object/get",["object/get","@config.assetManifest","terrains"],["object/get","@t","terrain"]]],"anchor":"center","width":0.5,"height":0.5}]],["fn","s",["validate/required",["object/get",["object/get","@s","asset"],"url"]]]]},{"type":"draw-sprite-layer","items":["array/map","@config.features",["fn","f",{"type":"draw-sprite","position":{"x":["object/get","@f","x"],"y":["object/get","@f","y"]},"asset":["object/get","@f","sprite"]}]]},{"type":"draw-shape-layer","items":["array/map","@entity.validMoves",["fn","m",{"type":"draw-shape","shape":"cell","position":{"x":["object/get","@m","x"],"y":["object/get","@m","y"]},"fill":"rgba(74,222,128,0.4)"}]]},{"type":"draw-shape-layer","items":["array/map",["array/filter","@entity.units",["fn","u",["==",["object/get","@u","id"],"@entity.selectedHeroId"]]],["fn","u",{"type":"draw-shape","shape":"ellipse","position":["object/get","@u","position"],"radiusX":0.5,"radiusY":0.2,"stroke":"rgba(0,200,255,0.8)","strokeWidth":3}]]},{"type":"draw-sprite-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-sprite","position":["object/get","@u","position"],"asset":["if",["validate/required",["object/get",["object/get","@u","sprite"],"url"]],["object/get","@u","sprite"],["object/get",["object/get","@config.assetManifest","units"],["object/get","@u","unitType"]]],"id":["object/get","@u","id"],"anchor":"ground","width":0.5,"height":0.5}]]},{"type":"draw-shape-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-shape","shape":"rect","position":["object/get","@u","position"],"anchor":"ground","offsetX":-0.25,"offsetY":-0.6,"width":0.5,"height":0.12,"fill":"rgba(0,0,0,0.6)"}]]},{"type":"draw-shape-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-shape","shape":"rect","position":["object/get","@u","position"],"anchor":"ground","offsetX":-0.25,"offsetY":-0.6,"width":["*",0.5,["/",["object/get","@u","health"],["object/get","@u","maxHealth"]]],"height":0.12,"fill":"#22c55e"}]]},{"type":"draw-text-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-text","text":["object/get","@u","name"],"position":["object/get","@u","position"],"offsetY":-0.85,"color":"#ffffff"}]]},{"type":"draw-sprite-layer","items":["array/map","@entity.effects",["fn","e",{"type":"draw-sprite","position":{"x":["object/get","@e","x"],"y":["object/get","@e","y"]},"asset":["object/get",["object/get","@config.assetManifest","effects"],["object/get","@e","key"]]}]]}]}]}]]},{"from":"playing","to":"playing","event":"HERO_SELECT","eventId":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","guard":["and",["==","@entity.result","none"],["==",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"team"],"player"]],"effects":[["set","@entity.selectedHeroId","@payload.unitId"],["set","@entity.validMoves",["array/map",["array/filter","@entity.tiles",["fn","t",["and",["grid/in-bounds",{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"@config.gridWidth","@config.gridHeight"],["and",["<=",["grid/manhattan-distance",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"position"],{"x":["object/get","@t","x"],"y":["object/get","@t","y"]}],"@config.movementRange"],["and",["==",["object/get","@t","passable"],true],["==",["array/len",["array/filter","@entity.units",["fn","u",["and",["==",["object/get",["object/get","@u","position"],"x"],["object/get","@t","x"]],["==",["object/get",["object/get","@u","position"],"y"],["object/get","@t","y"]]]]]],0]]]]]],["fn","t",{"x":["object/get","@t","x"],"y":["object/get","@t","y"]}]]],["set","@entity.waypoints",[]]]},{"from":"playing","to":"playing","event":"HERO_MOVE","eventId":"evt_9X0WZ0AG1T80X9ESAGZZG5765K","guard":["and",["==","@entity.result","none"],["and",["!=","@entity.selectedHeroId",""],["and",["grid/in-bounds",{"x":"@payload.x","y":"@payload.y"},"@config.gridWidth","@config.gridHeight"],["and",["<=",["grid/manhattan-distance",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@entity.selectedHeroId"]]],"position"],{"x":"@payload.x","y":"@payload.y"}],"@config.movementRange"],["and",["==",["object/get",["array/find","@entity.tiles",["fn","t",["and",["==",["object/get","@t","x"],"@payload.x"],["==",["object/get","@t","y"],"@payload.y"]]]],"passable"],true],["==",["array/len",["array/filter","@entity.units",["fn","u",["and",["==",["object/get",["object/get","@u","position"],"x"],"@payload.x"],["==",["object/get",["object/get","@u","position"],"y"],"@payload.y"]]]]],0]]]]]],"effects":[["emit","MOVE",{"unitId":"@entity.selectedHeroId","x":"@payload.x","y":"@payload.y"}],["if",["==",["object/get",["array/find","@config.features",["fn","f",["and",["==",["object/get","@f","x"],"@payload.x"],["and",["==",["object/get","@f","y"],"@payload.y"],["==",["object/get","@f","type"],"gold_mine"]]]]],"type"],"gold_mine"],["emit","MINE_HIT",{"id":""}],null],["set","@entity.selectedHeroId",""],["set","@entity.validMoves",[]]]},{"from":"playing","to":"playing","event":"HERO_SELECT","eventId":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","guard":["and",["==","@entity.result","none"],["and",["!=","@entity.selectedHeroId",""],["and",["==",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"team"],"enemy"],["==",["grid/manhattan-distance",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@entity.selectedHeroId"]]],"position"],["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"position"]],1]]]],"effects":[["emit","ATTACK",{"targetId":"@payload.unitId"}],["set","@entity.effects",["array/append","@entity.effects",{"key":"slash","x":["object/get",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"position"],"x"],"y":["object/get",["object/get",["array/find","@entity.units",["fn","u",["==","@u.id","@payload.unitId"]]],"position"],"y"],"ttl":4}]],["set","@entity.selectedHeroId",""],["set","@entity.validMoves",[]],["set","@entity.turn",["+","@entity.turn",1]]]},{"from":"playing","to":"playing","event":"ADVANCE_TURN","eventId":"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE","guard":["==","@entity.result","none"],"effects":[["set","@entity.turn",["+","@entity.turn",1]],["set","@entity.selectedHeroId",""],["set","@entity.validMoves",[]]]}]},"ticks":[{"name":"renderTick","interval":100,"effects":[["render-ui","main",{"type":"game-shell","fontFamily":"@config.fontFamily","backgroundAsset":"@config.backgroundAsset","hudBackgroundAsset":"@config.hudBackgroundAsset","hud":{"type":"stack","direction":"horizontal","gap":"md","justify":"between","children":[{"type":"game-hud","stats":["array/concat",[{"label":"Region","value":"@config.region","iconUrl":"@config.regionIconAsset"},{"label":"Turn","value":"@entity.turn","iconUrl":"@config.turnIconAsset"},{"label":"Gold","value":"@entity.gold","iconUrl":"@config.goldIconAsset"}],"@config.extraStats"]},{"type":"stack","direction":"horizontal","gap":"xs","align":"center","children":[{"type":"icon","name":"map-pin"},{"type":"typography","variant":"caption","content":"Waypoints"}]}]},"addons":{"type":"stack","direction":"vertical","gap":"sm","children":["array/concat",[{"type":"button","action":"ADVANCE_TURN","label":"Pass Turn","iconAsset":"@config.travelIconAsset","variant":"primary"}],"@config.extraAddons"]},"overlay":["if",["!=","@entity.result","none"],{"type":"game-menu","title":["if",["==","@entity.result","victory"],"VICTORY","DEFEAT"],"subtitle":["if",["==","@entity.result","victory"],"The realm is secured","Your heroes have fallen"],"options":[]},null],"children":[{"type":"canvas","fit":true,"camera":{"pos":{"x":["/",["+",["array/min","@entity.tiles","x"],["array/max","@entity.tiles","x"]],2],"y":["/",["+",["array/min","@entity.tiles","y"],["array/max","@entity.tiles","y"]],2]}},"projection":"isometric","showMinimap":true,"tileClickEvent":"HERO_MOVE","unitClickEvent":"HERO_SELECT","children":[{"type":"draw-shape-layer","items":["array/map","@entity.tiles",["fn","t",{"type":"draw-shape","shape":"cell","position":{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"fill":"#5c94fc","stroke":"rgba(255,255,255,0.35)","strokeWidth":1}]]},{"type":"draw-sprite-layer","items":["array/filter",["array/map","@entity.tiles",["fn","t",{"type":"draw-sprite","position":{"x":["object/get","@t","x"],"y":["object/get","@t","y"]},"asset":["if",["validate/required",["object/get",["object/get","@t","terrainSprite"],"url"]],["object/get","@t","terrainSprite"],["object/get",["object/get","@config.assetManifest","terrains"],["object/get","@t","terrain"]]],"anchor":"center","width":0.5,"height":0.5}]],["fn","s",["validate/required",["object/get",["object/get","@s","asset"],"url"]]]]},{"type":"draw-sprite-layer","items":["array/map","@config.features",["fn","f",{"type":"draw-sprite","position":{"x":["object/get","@f","x"],"y":["object/get","@f","y"]},"asset":["object/get","@f","sprite"]}]]},{"type":"draw-shape-layer","items":["array/map","@entity.validMoves",["fn","m",{"type":"draw-shape","shape":"cell","position":{"x":["object/get","@m","x"],"y":["object/get","@m","y"]},"fill":"rgba(74,222,128,0.4)"}]]},{"type":"draw-shape-layer","items":["array/map",["array/filter","@entity.units",["fn","u",["==",["object/get","@u","id"],"@entity.selectedHeroId"]]],["fn","u",{"type":"draw-shape","shape":"ellipse","position":["object/get","@u","position"],"radiusX":0.5,"radiusY":0.2,"stroke":"rgba(0,200,255,0.8)","strokeWidth":3}]]},{"type":"draw-sprite-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-sprite","position":["object/get","@u","position"],"asset":["if",["validate/required",["object/get",["object/get","@u","sprite"],"url"]],["object/get","@u","sprite"],["object/get",["object/get","@config.assetManifest","units"],["object/get","@u","unitType"]]],"id":["object/get","@u","id"],"anchor":"ground","width":0.5,"height":0.5}]]},{"type":"draw-shape-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-shape","shape":"rect","position":["object/get","@u","position"],"anchor":"ground","offsetX":-0.25,"offsetY":-0.6,"width":0.5,"height":0.12,"fill":"rgba(0,0,0,0.6)"}]]},{"type":"draw-shape-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-shape","shape":"rect","position":["object/get","@u","position"],"anchor":"ground","offsetX":-0.25,"offsetY":-0.6,"width":["*",0.5,["/",["object/get","@u","health"],["object/get","@u","maxHealth"]]],"height":0.12,"fill":"#22c55e"}]]},{"type":"draw-text-layer","items":["array/map","@entity.units",["fn","u",{"type":"draw-text","text":["object/get","@u","name"],"position":["object/get","@u","position"],"offsetY":-0.85,"color":"#ffffff"}]]},{"type":"draw-sprite-layer","items":["array/map","@entity.effects",["fn","e",{"type":"draw-sprite","position":{"x":["object/get","@e","x"],"y":["object/get","@e","y"]},"asset":["object/get",["object/get","@config.assetManifest","effects"],["object/get","@e","key"]]}]]}]}]}]]}],"config":{"extraStats":{"type":"[HudStat]","default":[],"label":"Extra HUD Stats","description":"Board-specific HUD stats appended after Region/Turn/Gold.","tier":"presentation","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":false},"value":{"name":"value","type":"number","required":false}}}},"region":{"type":"string","default":"Overworld","label":"Region","description":"Region name shown in the HUD.","tier":"presentation"},"gridWidth":{"type":"number","default":4,"label":"Grid Width","description":"Grid column count (matches TacticsAuthority.gridWidth).","tier":"presentation"},"travelIconAsset":{"type":"Asset","default":{},"label":"Travel Icon Asset","description":"Icon sprite for the Pass Turn button.","tier":"presentation","properties":{"dimension":{"name":"dimension","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"name":{"name":"name","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"role":{"name":"role","type":"string","required":false}}},"assetManifest":{"type":"AssetManifest","default":{"terrains":{},"units":{},"features":{},"effects":{}},"label":"Asset Manifest","description":"Terrain/unit/feature/effect sprite manifest.","tier":"presentation","properties":{"features":{"name":"features","type":"object","required":false,"items":{"type":"object","properties":{"variant":{"name":"variant","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"dimension":{"name":"dimension","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"role":{"name":"role","type":"string","required":false}}}},"terrains":{"name":"terrains","type":"object","required":false,"items":{"type":"object","properties":{"atlas":{"name":"atlas","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}}}}},"effects":{"name":"effects","type":"object","required":false,"items":{"type":"object","properties":{"category":{"name":"category","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"style":{"name":"style","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false}}}},"units":{"name":"units","type":"object","required":false,"items":{"type":"object","properties":{"variant":{"name":"variant","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false}}}}}},"regionIconAsset":{"type":"Asset","default":{},"label":"Region Icon Asset","description":"Icon sprite for the Region HUD stat.","tier":"presentation","properties":{"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"style":{"name":"style","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false}}},"turnIconAsset":{"type":"Asset","default":{},"label":"Turn Icon Asset","description":"Icon sprite for the Turn HUD stat.","tier":"presentation","properties":{"variant":{"name":"variant","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"category":{"name":"category","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false}}},"fontFamily":{"type":"string","default":"future","label":"Font Family","description":"game-shell fontFamily prop (theme chrome).","tier":"presentation"},"hudBackgroundAsset":{"type":"Asset","default":{},"label":"HUD Background Asset","description":"HUD panel background sprite (theme chrome).","tier":"presentation","properties":{"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"atlas":{"name":"atlas","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false}}},"features":{"type":"[Feature]","default":[],"label":"Features","description":"Board features — gold mines, portals, and other decorative/interactive map markers.","tier":"domain","items":{"type":"object","properties":{"x":{"name":"x","type":"number","required":true},"type":{"name":"type","type":"string","required":true},"sprite":{"name":"sprite","type":"object","required":false,"properties":{"name":{"name":"name","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"style":{"name":"style","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"role":{"name":"role","type":"string","required":false}}},"y":{"name":"y","type":"number","required":true},"id":{"name":"id","type":"string","required":false}}}},"goldIconAsset":{"type":"Asset","default":{},"label":"Gold Icon Asset","description":"Icon sprite for the Gold HUD stat.","tier":"presentation","properties":{"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"variant":{"name":"variant","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false}}},"movementRange":{"type":"number","default":3,"label":"Movement Range","description":"Max manhattan distance the selected hero may travel in one move.","tier":"domain"},"gridHeight":{"type":"number","default":4,"label":"Grid Height","description":"Grid row count (matches TacticsAuthority.gridHeight).","tier":"presentation"},"backgroundAsset":{"type":"Asset","default":{},"label":"Background Asset","description":"Game-shell background panel sprite (theme chrome).","tier":"presentation","properties":{"atlas":{"name":"atlas","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"url":{"name":"url","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"style":{"name":"style","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}}}},"extraAddons":{"type":"[HudButton]","default":[],"label":"Extra Addon Buttons","description":"Board-specific action buttons appended after Pass Turn.","tier":"presentation","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":false},"action":{"name":"action","type":"string","required":false},"iconAsset":{"name":"iconAsset","type":"object","required":false,"properties":{"style":{"name":"style","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"sprite":{"name":"sprite","type":"string","required":false},"role":{"name":"role","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"url":{"name":"url","type":"string","required":false},"category":{"name":"category","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"name":{"name":"name","type":"string","required":false},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false}}},"type":{"name":"type","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false}}}}},"scope":"instance"}],"pages":[{"name":"WorldMapBoard2DPage","id":"pag_S84Y2H9Z4YZJFCDGRV0R8ABP9H","path":"/worldmap-board-2d","traits":[{"ref":"TacticsAuthority","refId":"trt_5E5P4WQW9NY4TTWQ9N428W0A5Y"},{"ref":"RoundLogic","refId":"trt_0AJ7SA4ZA4FN2DKD4VMRR3DZKK"},{"ref":"GoldAuthority","refId":"trt_D12KGQCESK7CSKJ7V096CBGNQF"},{"ref":"WorldMapIntent","refId":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"}]}],"types":{"Asset":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}],"AssetManifest":[{"name":"terrains","type":"Map<string,Asset>"},{"name":"units","type":"Map<string,Asset>"},{"name":"features","type":"Map<string,Asset>"},{"name":"effects","type":"Map<string,Asset>"}],"Effect":[{"name":"key","type":"string","required":true},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true},{"name":"ttl","type":"number","required":true}],"Feature":[{"name":"id","type":"string"},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true},{"name":"type","type":"string","required":true},{"name":"sprite","type":"object","properties":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]}],"HudButton":[{"name":"type","type":"string"},{"name":"action","type":"string"},{"name":"label","type":"string"},{"name":"variant","type":"string"},{"name":"iconAsset","type":"object","properties":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]}],"HudStat":[{"name":"label","type":"string"},{"name":"value","type":"number"}],"Tile":[{"name":"id","type":"string"},{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true},{"name":"terrain","type":"string"},{"name":"terrainSprite","type":"object","properties":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]},{"name":"passable","type":"boolean"}],"Unit":[{"name":"id","type":"string","required":true},{"name":"position","type":"object","properties":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]},{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"z","type":"number"},{"name":"sprite","type":"object","properties":[{"name":"url","type":"asset"},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"role","type":"string"},{"name":"category","type":"string"},{"name":"animations","type":"[string]"},{"name":"style","type":"string"},{"name":"variant","type":"string"},{"name":"dimension","type":"string"},{"name":"aspect","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]},{"name":"unitType","type":"string"},{"name":"name","type":"string"},{"name":"team","type":"string","values":["player","enemy","neutral"]},{"name":"health","type":"number"},{"name":"maxHealth","type":"number"},{"name":"animation","type":"string"},{"name":"frame","type":"number"}],"ValidMove":[{"name":"x","type":"number","required":true},{"name":"y","type":"number","required":true}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_N0E8GE8CBK65SPSVZP4P2HZ74W":{"id":"ent_N0E8GE8CBK65SPSVZP4P2HZ74W","kind":"entity","bakedName":"GameState","curName":"GameState","renames":[],"owner":"workspace"},"evt_0851N9ZGG6R833PD2TT9SZEAMC":{"id":"evt_0851N9ZGG6R833PD2TT9SZEAMC","kind":"event","bakedName":"MINE_HIT","curName":"MINE_HIT","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_2E6VM7QAMQNABT9BWN1S79JJFZ":{"id":"evt_2E6VM7QAMQNABT9BWN1S79JJFZ","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_35ZNM1FJPGSB8ASZGDSJWYJC22":{"id":"evt_35ZNM1FJPGSB8ASZGDSJWYJC22","kind":"event","bakedName":"ATTACK","curName":"ATTACK","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_9X0WZ0AG1T80X9ESAGZZG5765K":{"id":"evt_9X0WZ0AG1T80X9ESAGZZG5765K","kind":"event","bakedName":"HERO_MOVE","curName":"HERO_MOVE","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE":{"id":"evt_D385Y1GMXYAEZ8ZTJ18SW7XZSE","kind":"event","bakedName":"ADVANCE_TURN","curName":"ADVANCE_TURN","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_HYGHSKGJYG9F80TVVAE5AZJEMW":{"id":"evt_HYGHSKGJYG9F80TVVAE5AZJEMW","kind":"event","bakedName":"MOVE","curName":"MOVE","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"evt_J9W3X81X3DYHPHEG1M8HQQCKWD":{"id":"evt_J9W3X81X3DYHPHEG1M8HQQCKWD","kind":"event","bakedName":"HERO_SELECT","curName":"HERO_SELECT","renames":[],"owner":"workspace","parent":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B"},"orb_GFPCS9PHE28Q10H9ZXVMC1Q17E":{"id":"orb_GFPCS9PHE28Q10H9ZXVMC1Q17E","kind":"orbital","bakedName":"WorldMapBoard2DOrbital","curName":"WorldMapBoard2DOrbital","renames":[],"owner":"workspace"},"pag_S84Y2H9Z4YZJFCDGRV0R8ABP9H":{"id":"pag_S84Y2H9Z4YZJFCDGRV0R8ABP9H","kind":"page","bakedName":"WorldMapBoard2DPage","curName":"WorldMapBoard2DPage","renames":[],"owner":"workspace"},"trt_0AJ7SA4ZA4FN2DKD4VMRR3DZKK":{"id":"trt_0AJ7SA4ZA4FN2DKD4VMRR3DZKK","kind":"trait","bakedName":"RoundLogic","curName":"RoundLogic","renames":[],"owner":"workspace"},"trt_5E5P4WQW9NY4TTWQ9N428W0A5Y":{"id":"trt_5E5P4WQW9NY4TTWQ9N428W0A5Y","kind":"trait","bakedName":"TacticsAuthority","curName":"TacticsAuthority","renames":[],"owner":"workspace"},"trt_8CYTDZRX3NEHTWYPKE2W273Y4B":{"id":"trt_8CYTDZRX3NEHTWYPKE2W273Y4B","kind":"trait","bakedName":"WorldMapIntent","curName":"WorldMapIntent","renames":[],"owner":"workspace"},"trt_D12KGQCESK7CSKJ7V096CBGNQF":{"id":"trt_D12KGQCESK7CSKJ7V096CBGNQF","kind":"trait","bakedName":"GoldAuthority","curName":"GoldAuthority","renames":[],"owner":"workspace"}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"ui-game-shell","version":"1.0.0","description":"GameShell — UI factory (1:1 with the @almadar/ui game-shell pattern).","orbitals":[{"name":"GameShellOrbital","id":"orb_Q6PWPN13JZHSFGDQ2DVRDZMZTA","entity":{"name":"GameShellItem","id":"ent_SF0AAG1HHDRRPSWPCGR76YA9PP","persistence":"runtime","fields":[{"name":"id","type":"string","required":true}]},"traits":[{"name":"GameShellRender","id":"trt_52VC4PRTTXDDETCMMTG8XXNQ9V","entityRebindable":true,"entityContract":{"requires":[],"provides":[]},"effectRow":[{"kind":"render-ui","resource":"main"}],"category":"interaction","linkedEntity":"GameShellItem","linkedEntityId":"ent_SF0AAG1HHDRRPSWPCGR76YA9PP","entityRefIds":{"GameShellItem":"ent_SF0AAG1HHDRRPSWPCGR76YA9PP"},"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_8XWJ1S07VB3XNHNXKXDFR7GYV4","name":"Initialize"}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_8XWJ1S07VB3XNHNXKXDFR7GYV4","effects":[["render-ui","main",{"appName":"@config.appName","hud":"@config.hud","addons":"@config.addons","controls":"@config.controls","overlay":"@config.overlay","className":"@config.className","showTopBar":"@config.showTopBar","children":"@config.children","backgroundAsset":"@config.backgroundAsset","hudBackgroundAsset":"@config.hudBackgroundAsset","fontFamily":"@config.fontFamily","data-theme":"@config.theme","type":"game-shell"}]]}]},"config":{"
|
|
1
|
+
{"name":"ui-game-shell","version":"1.0.0","description":"GameShell — UI factory (1:1 with the @almadar/ui game-shell pattern).","orbitals":[{"name":"GameShellOrbital","id":"orb_Q6PWPN13JZHSFGDQ2DVRDZMZTA","entity":{"name":"GameShellItem","id":"ent_SF0AAG1HHDRRPSWPCGR76YA9PP","persistence":"runtime","fields":[{"name":"id","type":"string","required":true}]},"traits":[{"name":"GameShellRender","id":"trt_52VC4PRTTXDDETCMMTG8XXNQ9V","entityRebindable":true,"entityContract":{"requires":[],"provides":[]},"effectRow":[{"kind":"render-ui","resource":"main"}],"category":"interaction","linkedEntity":"GameShellItem","linkedEntityId":"ent_SF0AAG1HHDRRPSWPCGR76YA9PP","entityRefIds":{"GameShellItem":"ent_SF0AAG1HHDRRPSWPCGR76YA9PP"},"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_8XWJ1S07VB3XNHNXKXDFR7GYV4","name":"Initialize"}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_8XWJ1S07VB3XNHNXKXDFR7GYV4","effects":[["render-ui","main",{"appName":"@config.appName","hud":"@config.hud","addons":"@config.addons","controls":"@config.controls","overlay":"@config.overlay","className":"@config.className","showTopBar":"@config.showTopBar","children":"@config.children","backgroundAsset":"@config.backgroundAsset","hudBackgroundAsset":"@config.hudBackgroundAsset","fontFamily":"@config.fontFamily","data-theme":"@config.theme","type":"game-shell"}]]}]},"config":{"fontFamily":{"type":"string","default":"","label":"Font Family","description":"Game display-font key (pixel | fredoka | future | future-narrow | blocks | mini) or a CSS font-family. Scoped override of the theme contract's --font-family-display slot: titles and numerics take this face, body text follows the active theme. Empty = the active theme's font-family-display token decides.","tier":"presentation"},"addons":{"type":"node","label":"Addons","description":"Action cluster — floats bottom-right (End Turn, Fire, Reset, …). Legacy chrome surface: new behaviors emit action chrome via render-ui \"hud-bottom\" or \"floating\" instead.","tier":"presentation"},"overlay":{"type":"node","label":"Overlay","description":"Centered overlay layer (victory/defeat banners, dialogs). Legacy chrome surface: new behaviors emit overlays via render-ui \"overlay\" (clear with render-ui \"overlay\" null on every exit) instead.","tier":"presentation"},"hud":{"type":"node","label":"Hud","description":"Stat chips row — floats along the top edge. Legacy chrome surface: new behaviors emit HUD chrome via render-ui \"hud-top\" instead.","tier":"presentation"},"controls":{"type":"node","label":"Controls","description":"Movement controls — floats bottom-left (d-pad / control-grid). Legacy chrome surface: new behaviors emit movement controls via render-ui \"hud-bottom\" instead.","tier":"presentation"},"className":{"type":"string","label":"Class Name","description":"Extra class name on the root container","tier":"presentation"},"children":{"type":"node","default":[{"type":"canvas-2d"}],"label":"Children","description":"Game content — fills the whole surface underneath the overlays","tier":"presentation"},"theme":{"type":"string","default":"","label":"Theme","description":"Scopes an @almadar/ui theme (e.g. game-sci-fi-dark) to this shell's subtree. Empty = inherit the ambient theme.","tier":"presentation"},"showTopBar":{"type":"boolean","default":true,"label":"Show Top Bar","description":"Whether to show the title chip (default: true)","tier":"presentation"},"backgroundAsset":{"type":"GameShellBackgroundAsset","label":"Background Asset","description":"Pattern slice tiled at low opacity across the surface (never cover-stretched).","tier":"presentation","properties":{"name":{"name":"name","type":"string","required":false},"atlas":{"name":"atlas","type":"string","required":false},"category":{"name":"category","type":"string","required":true},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false,"values":["2d","3d"]},"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"style":{"name":"style","type":"string","required":false,"values":["pixel","vector","hd","1-bit","isometric"]},"sprite":{"name":"sprite","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"role":{"name":"role","type":"string","required":true},"aspect":{"name":"aspect","type":"string","required":false,"values":["1:1","16:9","5:7","8:1"]},"url":{"name":"url","type":"string","required":true}}},"hudBackgroundAsset":{"type":"GameShellHudBackgroundAsset","label":"Hud Background Asset","description":"Per-call-site 9-sliced panel override. Chrome normally comes from the active theme (see the theme config knob); most callers leave this unset.","tier":"presentation","properties":{"animations":{"name":"animations","type":"array","required":false,"items":{"type":"string"}},"sprite":{"name":"sprite","type":"string","required":false},"dimension":{"name":"dimension","type":"string","required":false,"values":["2d","3d"]},"category":{"name":"category","type":"string","required":true},"thumbnailUrl":{"name":"thumbnailUrl","type":"string","required":false},"variant":{"name":"variant","type":"string","required":false},"url":{"name":"url","type":"string","required":true},"name":{"name":"name","type":"string","required":false},"aspect":{"name":"aspect","type":"string","required":false,"values":["1:1","16:9","5:7","8:1"]},"role":{"name":"role","type":"string","required":true},"style":{"name":"style","type":"string","required":false,"values":["pixel","vector","hd","1-bit","isometric"]},"atlas":{"name":"atlas","type":"string","required":false}}},"appName":{"type":"string","default":"Game","label":"App Name","description":"Application / game title shown as a floating chip","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"GameShellPage","id":"pag_385NASS9YEMZ767D186F0M8BE9","path":"/game-shell","traits":[{"ref":"GameShellRender","refId":"trt_52VC4PRTTXDDETCMMTG8XXNQ9V"}]}],"types":{"GameShellBackgroundAsset":[{"name":"url","type":"asset","required":true},{"name":"role","type":"string","required":true},{"name":"category","type":"string","required":true},{"name":"animations","type":"[string]"},{"name":"style","type":"string","values":["pixel","vector","hd","1-bit","isometric"]},{"name":"variant","type":"string"},{"name":"dimension","type":"string","values":["2d","3d"]},{"name":"aspect","type":"string","values":["1:1","16:9","5:7","8:1"]},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}],"GameShellHudBackgroundAsset":[{"name":"url","type":"asset","required":true},{"name":"role","type":"string","required":true},{"name":"category","type":"string","required":true},{"name":"animations","type":"[string]"},{"name":"style","type":"string","values":["pixel","vector","hd","1-bit","isometric"]},{"name":"variant","type":"string"},{"name":"dimension","type":"string","values":["2d","3d"]},{"name":"aspect","type":"string","values":["1:1","16:9","5:7","8:1"]},{"name":"atlas","type":"asset"},{"name":"sprite","type":"string"},{"name":"name","type":"string"},{"name":"thumbnailUrl","type":"string"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_SF0AAG1HHDRRPSWPCGR76YA9PP":{"id":"ent_SF0AAG1HHDRRPSWPCGR76YA9PP","kind":"entity","bakedName":"GameShellItem","curName":"GameShellItem","renames":[],"owner":"workspace"},"evt_8XWJ1S07VB3XNHNXKXDFR7GYV4":{"id":"evt_8XWJ1S07VB3XNHNXKXDFR7GYV4","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_52VC4PRTTXDDETCMMTG8XXNQ9V"},"orb_Q6PWPN13JZHSFGDQ2DVRDZMZTA":{"id":"orb_Q6PWPN13JZHSFGDQ2DVRDZMZTA","kind":"orbital","bakedName":"GameShellOrbital","curName":"GameShellOrbital","renames":[],"owner":"workspace"},"pag_385NASS9YEMZ767D186F0M8BE9":{"id":"pag_385NASS9YEMZ767D186F0M8BE9","kind":"page","bakedName":"GameShellPage","curName":"GameShellPage","renames":[],"owner":"workspace"},"trt_52VC4PRTTXDDETCMMTG8XXNQ9V":{"id":"trt_52VC4PRTTXDDETCMMTG8XXNQ9V","kind":"trait","bakedName":"GameShellRender","curName":"GameShellRender","renames":[],"owner":"workspace"}}}}
|