@almadar/std 1.0.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.
Files changed (78) hide show
  1. package/LICENSE +72 -0
  2. package/dist/behaviors/action-affinity.d.ts +88 -0
  3. package/dist/behaviors/action-affinity.js +290 -0
  4. package/dist/behaviors/action-affinity.js.map +1 -0
  5. package/dist/behaviors/async.d.ts +20 -0
  6. package/dist/behaviors/async.js +542 -0
  7. package/dist/behaviors/async.js.map +1 -0
  8. package/dist/behaviors/data-management.d.ts +40 -0
  9. package/dist/behaviors/data-management.js +495 -0
  10. package/dist/behaviors/data-management.js.map +1 -0
  11. package/dist/behaviors/feedback.d.ts +18 -0
  12. package/dist/behaviors/feedback.js +307 -0
  13. package/dist/behaviors/feedback.js.map +1 -0
  14. package/dist/behaviors/game-core.d.ts +40 -0
  15. package/dist/behaviors/game-core.js +443 -0
  16. package/dist/behaviors/game-core.js.map +1 -0
  17. package/dist/behaviors/game-entity.d.ts +39 -0
  18. package/dist/behaviors/game-entity.js +643 -0
  19. package/dist/behaviors/game-entity.js.map +1 -0
  20. package/dist/behaviors/game-ui.d.ts +29 -0
  21. package/dist/behaviors/game-ui.js +493 -0
  22. package/dist/behaviors/game-ui.js.map +1 -0
  23. package/dist/behaviors/index.d.ts +11 -0
  24. package/dist/behaviors/index.js +4539 -0
  25. package/dist/behaviors/index.js.map +1 -0
  26. package/dist/behaviors/registry.d.ts +103 -0
  27. package/dist/behaviors/registry.js +4166 -0
  28. package/dist/behaviors/registry.js.map +1 -0
  29. package/dist/behaviors/types.d.ts +179 -0
  30. package/dist/behaviors/types.js +111 -0
  31. package/dist/behaviors/types.js.map +1 -0
  32. package/dist/behaviors/ui-interaction.d.ts +36 -0
  33. package/dist/behaviors/ui-interaction.js +1104 -0
  34. package/dist/behaviors/ui-interaction.js.map +1 -0
  35. package/dist/index.d.ts +195 -0
  36. package/dist/index.js +8209 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/modules/array.d.ts +28 -0
  39. package/dist/modules/array.js +556 -0
  40. package/dist/modules/array.js.map +1 -0
  41. package/dist/modules/async.d.ts +22 -0
  42. package/dist/modules/async.js +112 -0
  43. package/dist/modules/async.js.map +1 -0
  44. package/dist/modules/format.d.ts +21 -0
  45. package/dist/modules/format.js +129 -0
  46. package/dist/modules/format.js.map +1 -0
  47. package/dist/modules/index.d.ts +12 -0
  48. package/dist/modules/index.js +3131 -0
  49. package/dist/modules/index.js.map +1 -0
  50. package/dist/modules/math.d.ts +22 -0
  51. package/dist/modules/math.js +215 -0
  52. package/dist/modules/math.js.map +1 -0
  53. package/dist/modules/nn.d.ts +23 -0
  54. package/dist/modules/nn.js +189 -0
  55. package/dist/modules/nn.js.map +1 -0
  56. package/dist/modules/object.d.ts +22 -0
  57. package/dist/modules/object.js +257 -0
  58. package/dist/modules/object.js.map +1 -0
  59. package/dist/modules/str.d.ts +21 -0
  60. package/dist/modules/str.js +344 -0
  61. package/dist/modules/str.js.map +1 -0
  62. package/dist/modules/tensor.d.ts +23 -0
  63. package/dist/modules/tensor.js +427 -0
  64. package/dist/modules/tensor.js.map +1 -0
  65. package/dist/modules/time.d.ts +24 -0
  66. package/dist/modules/time.js +323 -0
  67. package/dist/modules/time.js.map +1 -0
  68. package/dist/modules/train.d.ts +23 -0
  69. package/dist/modules/train.js +308 -0
  70. package/dist/modules/train.js.map +1 -0
  71. package/dist/modules/validate.d.ts +23 -0
  72. package/dist/modules/validate.js +301 -0
  73. package/dist/modules/validate.js.map +1 -0
  74. package/dist/registry.d.ts +140 -0
  75. package/dist/registry.js +3240 -0
  76. package/dist/registry.js.map +1 -0
  77. package/dist/types-I95R8_FN.d.ts +91 -0
  78. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../behaviors/types.ts","../../behaviors/action-affinity.ts","../../behaviors/ui-interaction.ts","../../behaviors/data-management.ts","../../behaviors/async.ts","../../behaviors/feedback.ts","../../behaviors/game-core.ts","../../behaviors/game-entity.ts","../../behaviors/game-ui.ts","../../behaviors/registry.ts"],"names":["FILTER_BEHAVIOR"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Standard Behaviors Types\n *\n * Standard Behaviors are reusable Traits with a `std/` naming convention.\n * They use a more flexible state machine format optimized for authoring.\n *\n * ARCHITECTURE: Behaviors ARE Traits conceptually. They use:\n * - stateMachine: BehaviorStateMachine (flexible states, events, transitions)\n * - ticks: BehaviorTick[] (frame-by-frame execution for games)\n * - dataEntities: BehaviorDataEntity[] (runtime state)\n *\n * @packageDocumentation\n */\n\nimport type { SExpr, RequiredField } from '@almadar/core/types';\n\n// ============================================================================\n// Behavior Categories\n// ============================================================================\n\n/**\n * Categories of Standard Behaviors\n */\nexport const BEHAVIOR_CATEGORIES = [\n 'ui-interaction', // User interface state management\n 'data-management', // Data operations and state\n 'async', // Asynchronous workflows\n 'feedback', // User feedback and confirmations\n 'game-core', // Game loop and systems\n 'game-entity', // Game entity behaviors\n 'game-ui', // Game interface\n] as const;\n\nexport type BehaviorCategory = (typeof BEHAVIOR_CATEGORIES)[number];\n\n// ============================================================================\n// Config Field Types (for IDE hints and documentation)\n// ============================================================================\n\nexport type FieldType =\n | 'string'\n | 'number'\n | 'boolean'\n | 'array'\n | 'object'\n | 'entity'\n | 'slot'\n | 'pattern'\n | 'event'\n | 'action[]';\n\nexport interface ConfigField {\n name: string;\n type: FieldType;\n description: string;\n default?: unknown;\n enum?: string[];\n}\n\n// ============================================================================\n// Behavior State Machine Types (flexible for authoring)\n// ============================================================================\n\n/**\n * State definition - can be string or object\n */\nexport interface BehaviorState {\n name: string;\n isInitial?: boolean;\n isFinal?: boolean;\n description?: string;\n}\n\n/**\n * Event definition - simplified, only key required\n */\nexport interface BehaviorEvent {\n key: string;\n name?: string;\n description?: string;\n payload?: Record<string, unknown>;\n}\n\n/**\n * Transition definition - flexible from/to\n */\nexport interface BehaviorTransition {\n /** Source state(s) - string, '*' for any, or array */\n from?: string | string[] | '*';\n /** Target state - optional for self-transitions */\n to?: string;\n /** Event that triggers this transition */\n event: string;\n /** Guard condition (S-expression) */\n guard?: SExpr;\n /** Effects to execute (S-expressions) */\n effects?: SExpr[];\n}\n\n/**\n * State machine for behaviors - more flexible than core StateMachine\n */\nexport interface BehaviorStateMachine {\n initial: string;\n states: (string | BehaviorState)[];\n events: (string | BehaviorEvent)[];\n transitions: BehaviorTransition[];\n guards?: Array<{\n name: string;\n condition: SExpr;\n description?: string;\n }>;\n}\n\n// ============================================================================\n// Behavior Tick (for frame-by-frame execution)\n// ============================================================================\n\nexport interface BehaviorTick {\n name: string;\n description?: string;\n priority?: number;\n interval: 'frame' | number;\n appliesTo?: string[];\n guard?: SExpr;\n effects: SExpr[];\n}\n\n// ============================================================================\n// Behavior Data Entity (runtime state)\n// ============================================================================\n\nexport interface BehaviorEntityField {\n name: string;\n type: string;\n default?: unknown;\n required?: boolean;\n description?: string;\n}\n\nexport interface BehaviorDataEntity {\n name: string;\n runtime?: boolean;\n singleton?: boolean;\n fields: BehaviorEntityField[];\n description?: string;\n}\n\n// ============================================================================\n// Item Action (for render_ui props)\n// ============================================================================\n\nexport interface ItemAction {\n label: string;\n event?: string;\n navigatesTo?: string;\n placement?: 'row' | 'bulk' | 'card' | 'footer' | 'header';\n variant?: 'primary' | 'secondary' | 'ghost' | 'danger';\n showWhen?: SExpr | string;\n}\n\n// ============================================================================\n// Standard Behavior Interface\n// ============================================================================\n\n/**\n * Configuration schema for documentation and IDE hints\n */\nexport interface BehaviorConfig {\n required: ConfigField[];\n optional: ConfigField[];\n}\n\n/**\n * Standard Behavior definition\n */\nexport interface StandardBehavior {\n /** Behavior identifier (e.g., 'std/List', 'std/Form') */\n name: string;\n\n /** Category for organization */\n category: BehaviorCategory;\n\n /** Human-readable description */\n description: string;\n\n // ========== Documentation Extensions ==========\n\n /** When to use this behavior */\n suggestedFor?: string[];\n\n /** Configuration schema for IDE hints */\n configSchema?: BehaviorConfig;\n\n // ========== State Machine ==========\n\n /** State machine definition */\n stateMachine?: BehaviorStateMachine;\n\n // ========== Trait Features ==========\n\n /** Required fields from linked entity */\n requiredFields?: RequiredField[];\n\n /** Runtime data entities */\n dataEntities?: BehaviorDataEntity[];\n\n /** Frame-by-frame execution */\n ticks?: BehaviorTick[];\n\n /** Cross-behavior event listeners */\n listens?: Array<{\n event: string;\n triggers: string;\n guard?: SExpr;\n }>;\n\n /** Initial effects on behavior activation */\n initialEffects?: SExpr[];\n}\n\n/**\n * Behavior metadata for quick lookup\n */\nexport interface BehaviorMetadata {\n name: string;\n category: BehaviorCategory;\n description: string;\n suggestedFor: string[];\n states: string[];\n events: string[];\n tickCount: number;\n transitionCount: number;\n hasDataEntities: boolean;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\nexport function isBehaviorCategory(value: string): value is BehaviorCategory {\n return BEHAVIOR_CATEGORIES.includes(value as BehaviorCategory);\n}\n\nexport function isGameBehaviorCategory(category: BehaviorCategory): boolean {\n return category.startsWith('game-');\n}\n\n/**\n * Extract metadata from a StandardBehavior\n */\nexport function getBehaviorMetadata(behavior: StandardBehavior): BehaviorMetadata {\n const sm = behavior.stateMachine;\n\n const states: string[] = (sm?.states || []).map(s =>\n typeof s === 'string' ? s : s.name\n );\n\n const events: string[] = (sm?.events || []).map(e =>\n typeof e === 'string' ? e : e.key\n );\n\n return {\n name: behavior.name,\n category: behavior.category,\n description: behavior.description || '',\n suggestedFor: behavior.suggestedFor || [],\n states,\n events,\n tickCount: behavior.ticks?.length || 0,\n transitionCount: sm?.transitions?.length || 0,\n hasDataEntities: (behavior.dataEntities?.length || 0) > 0,\n };\n}\n\n/**\n * Validate behavior structure\n */\nexport function validateBehaviorStructure(behavior: StandardBehavior): string[] {\n const errors: string[] = [];\n\n if (!behavior.name) {\n errors.push('Behavior must have a name');\n }\n\n if (!behavior.name.startsWith('std/')) {\n errors.push(`Behavior name should start with 'std/' (got: ${behavior.name})`);\n }\n\n if (!behavior.category) {\n errors.push('Behavior must have a category');\n }\n\n if (!isBehaviorCategory(behavior.category)) {\n errors.push(`Invalid category: ${behavior.category}`);\n }\n\n const sm = behavior.stateMachine;\n if (sm) {\n if (!sm.states || sm.states.length === 0) {\n errors.push('State machine must have at least one state');\n }\n\n if (!sm.initial) {\n errors.push('State machine must have an initial state');\n }\n }\n\n return errors;\n}\n\n/**\n * Validate behavior events match transitions\n */\nexport function validateBehaviorEvents(behavior: StandardBehavior): string[] {\n const errors: string[] = [];\n const sm = behavior.stateMachine;\n if (!sm) return errors;\n\n const declaredEvents = new Set(\n (sm.events || []).map(e => typeof e === 'string' ? e : e.key)\n );\n\n const transitionEvents = new Set(\n (sm.transitions || []).map(t => t.event)\n );\n\n for (const event of transitionEvents) {\n if (event && !declaredEvents.has(event)) {\n errors.push(`Transition uses undeclared event: ${event}`);\n }\n }\n\n return errors;\n}\n\n/**\n * Validate behavior states match transitions\n */\nexport function validateBehaviorStates(behavior: StandardBehavior): string[] {\n const errors: string[] = [];\n const sm = behavior.stateMachine;\n if (!sm) return errors;\n\n const declaredStates = new Set(\n (sm.states || []).map(s => typeof s === 'string' ? s : s.name)\n );\n\n for (const t of sm.transitions || []) {\n // Check 'from' states (allow '*' and arrays)\n if (t.from && t.from !== '*') {\n const fromStates = Array.isArray(t.from) ? t.from : [t.from];\n for (const state of fromStates) {\n if (!declaredStates.has(state)) {\n errors.push(`Transition from undeclared state: ${state}`);\n }\n }\n }\n\n // Check 'to' state (optional)\n if (t.to && !declaredStates.has(t.to)) {\n errors.push(`Transition to undeclared state: ${t.to}`);\n }\n }\n\n return errors;\n}\n","/**\n * Action-Component Affinity Rules\n *\n * Defines which actions are valid on which components in the Closed Circuit pattern.\n * This enforces that behaviors only emit actions that make sense for their component context.\n *\n * The Closed Circuit pattern:\n * Behavior → render_ui → Component → User Action → Event Bus → Behavior\n *\n * @packageDocumentation\n */\n\n// ============================================================================\n// Action Affinity Types\n// ============================================================================\n\n/**\n * Action affinity definition for a component\n */\nexport interface ActionAffinity {\n /** Actions that are valid on this component */\n valid: string[];\n /** Actions that should NEVER appear on this component */\n invalid: string[];\n}\n\n/**\n * Action placement options\n */\nexport type ActionPlacement = 'row' | 'bulk' | 'card' | 'footer' | 'header';\n\n/**\n * Event naming convention for UI events\n */\nexport interface UIEventInfo {\n /** Event name (without UI: prefix) */\n event: string;\n /** Components that typically emit this event */\n emittedBy: string[];\n /** Expected payload shape */\n payload: Record<string, string>;\n /** Description of when this event is used */\n description: string;\n}\n\n// ============================================================================\n// Action-Component Affinity Matrix\n// ============================================================================\n\n/**\n * The action-component affinity matrix.\n * This defines which actions belong on which components.\n *\n * CRITICAL: Not all actions belong on all components.\n * The Closed Circuit pattern requires that actions match their component context.\n */\nexport const ACTION_AFFINITY: Record<string, ActionAffinity> = {\n // Display components - view data and trigger navigation/editing\n 'entity-table': {\n valid: ['VIEW', 'EDIT', 'DELETE', 'SELECT', 'SORT', 'PAGE'],\n invalid: ['SAVE', 'CANCEL', 'SUBMIT', 'CREATE', 'CLOSE'],\n },\n 'entity-list': {\n valid: ['VIEW', 'EDIT', 'DELETE', 'SELECT'],\n invalid: ['SAVE', 'CANCEL', 'SUBMIT', 'CREATE', 'CLOSE'],\n },\n 'entity-cards': {\n valid: ['VIEW', 'EDIT', 'DELETE', 'SELECT'],\n invalid: ['SAVE', 'CANCEL', 'SUBMIT', 'CREATE', 'CLOSE'],\n },\n 'card-grid': {\n valid: ['VIEW', 'EDIT', 'DELETE', 'SELECT'],\n invalid: ['SAVE', 'CANCEL', 'SUBMIT', 'CREATE', 'CLOSE'],\n },\n\n // Header components - page-level actions\n 'page-header': {\n valid: ['CREATE', 'REFRESH', 'EXPORT', 'IMPORT', 'BACK', 'FILTER'],\n invalid: ['SAVE', 'VIEW', 'EDIT', 'DELETE', 'SUBMIT'],\n },\n\n // Form components - data entry and submission\n 'form': {\n valid: ['SAVE', 'CANCEL', 'SUBMIT', 'CLOSE', 'RESET', 'FIELD_CHANGE', 'FIELD_BLUR'],\n invalid: ['VIEW', 'DELETE', 'CREATE', 'SELECT', 'EDIT'],\n },\n 'form-section': {\n valid: ['FIELD_CHANGE', 'FIELD_BLUR'],\n invalid: ['SAVE', 'VIEW', 'DELETE', 'CREATE', 'SELECT', 'EDIT'],\n },\n 'form-actions': {\n valid: ['SAVE', 'CANCEL', 'SUBMIT', 'RESET'],\n invalid: ['VIEW', 'DELETE', 'CREATE', 'SELECT', 'EDIT'],\n },\n\n // Detail components - view single entity with edit/delete options\n 'detail-panel': {\n valid: ['EDIT', 'DELETE', 'CLOSE', 'BACK'],\n invalid: ['SAVE', 'CREATE', 'SELECT', 'SUBMIT'],\n },\n 'entity-detail': {\n valid: ['EDIT', 'DELETE', 'CLOSE', 'BACK'],\n invalid: ['SAVE', 'CREATE', 'SELECT', 'SUBMIT'],\n },\n\n // Container components - open/close states\n 'modal': {\n valid: ['CLOSE', 'CONFIRM', 'CANCEL'],\n invalid: ['VIEW', 'CREATE', 'EDIT', 'DELETE'],\n },\n 'modal-container': {\n valid: ['CLOSE', 'CONFIRM', 'CANCEL'],\n invalid: ['VIEW', 'CREATE', 'EDIT', 'DELETE'],\n },\n 'drawer': {\n valid: ['CLOSE'],\n invalid: ['VIEW', 'CREATE', 'DELETE'],\n },\n\n // Navigation components\n 'tabs': {\n valid: ['SELECT_TAB'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'tab-bar': {\n valid: ['SELECT_TAB'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'wizard-navigation': {\n valid: ['NEXT', 'PREV', 'GO_TO', 'COMPLETE'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'wizard-progress': {\n valid: ['GO_TO'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT', 'NEXT', 'PREV'],\n },\n\n // Filter components\n 'filter-group': {\n valid: ['SET_FILTER', 'CLEAR_FILTER', 'CLEAR_ALL'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'search-bar': {\n valid: ['SEARCH', 'CLEAR_SEARCH'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'search-input': {\n valid: ['SEARCH', 'CLEAR_SEARCH'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n\n // Pagination components\n 'pagination': {\n valid: ['NEXT_PAGE', 'PREV_PAGE', 'GO_TO_PAGE', 'SET_PAGE_SIZE'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n\n // Confirmation components\n 'confirm-dialog': {\n valid: ['CONFIRM', 'CANCEL'],\n invalid: ['VIEW', 'CREATE', 'EDIT', 'DELETE', 'SAVE'],\n },\n\n // Empty/Loading states - no actions\n 'empty-state': {\n valid: ['CREATE'], // Often has a \"Create first item\" CTA\n invalid: ['SAVE', 'VIEW', 'EDIT', 'DELETE', 'CANCEL'],\n },\n 'loading-state': {\n valid: [],\n invalid: ['SAVE', 'VIEW', 'EDIT', 'DELETE', 'CREATE', 'CANCEL'],\n },\n\n // Stats/Dashboard - view only\n 'stats': {\n valid: [],\n invalid: ['SAVE', 'VIEW', 'EDIT', 'DELETE', 'CREATE', 'CANCEL'],\n },\n\n // Game components\n 'game-canvas': {\n valid: ['INPUT', 'PAUSE', 'UNPAUSE'],\n invalid: ['SAVE', 'CREATE', 'DELETE'],\n },\n 'game-hud': {\n valid: ['PAUSE'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'game-controls': {\n valid: ['INPUT', 'ACTION'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'game-menu': {\n valid: ['START', 'OPTIONS', 'QUIT', 'SELECT'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'game-pause-overlay': {\n valid: ['RESUME', 'QUIT', 'OPTIONS'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'game-over-screen': {\n valid: ['RETRY', 'QUIT', 'MAIN_MENU'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n};\n\n// ============================================================================\n// UI Event Definitions\n// ============================================================================\n\n/**\n * Standard UI events and their metadata\n */\nexport const UI_EVENTS: Record<string, UIEventInfo> = {\n VIEW: {\n event: 'VIEW',\n emittedBy: ['entity-table', 'entity-list', 'entity-cards', 'card-grid'],\n payload: { row: 'object', entity: 'string' },\n description: 'View item detail',\n },\n EDIT: {\n event: 'EDIT',\n emittedBy: ['entity-table', 'entity-list', 'entity-cards', 'detail-panel'],\n payload: { row: 'object', entity: 'string' },\n description: 'Edit item',\n },\n DELETE: {\n event: 'DELETE',\n emittedBy: ['entity-table', 'entity-list', 'entity-cards', 'detail-panel'],\n payload: { row: 'object', entity: 'string' },\n description: 'Delete item',\n },\n CREATE: {\n event: 'CREATE',\n emittedBy: ['page-header', 'empty-state'],\n payload: { entity: 'string' },\n description: 'Create new item',\n },\n SAVE: {\n event: 'SAVE',\n emittedBy: ['form', 'form-actions'],\n payload: { data: 'object', entity: 'string' },\n description: 'Save form data',\n },\n CANCEL: {\n event: 'CANCEL',\n emittedBy: ['form', 'form-actions', 'modal', 'confirm-dialog'],\n payload: {},\n description: 'Cancel form/modal',\n },\n CLOSE: {\n event: 'CLOSE',\n emittedBy: ['modal', 'drawer', 'detail-panel'],\n payload: {},\n description: 'Close modal/drawer',\n },\n SELECT: {\n event: 'SELECT',\n emittedBy: ['entity-table', 'entity-list', 'entity-cards'],\n payload: { selectedIds: 'string[]' },\n description: 'Selection change',\n },\n SEARCH: {\n event: 'SEARCH',\n emittedBy: ['search-bar', 'search-input'],\n payload: { searchTerm: 'string' },\n description: 'Search filter',\n },\n CONFIRM: {\n event: 'CONFIRM',\n emittedBy: ['modal', 'confirm-dialog'],\n payload: {},\n description: 'Confirm action',\n },\n SELECT_TAB: {\n event: 'SELECT_TAB',\n emittedBy: ['tabs', 'tab-bar'],\n payload: { tabId: 'string' },\n description: 'Tab selection',\n },\n NEXT: {\n event: 'NEXT',\n emittedBy: ['wizard-navigation'],\n payload: {},\n description: 'Wizard next step',\n },\n PREV: {\n event: 'PREV',\n emittedBy: ['wizard-navigation'],\n payload: {},\n description: 'Wizard previous step',\n },\n};\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Check if an action is valid for a component\n */\nexport function isActionValidForComponent(action: string, component: string): boolean {\n const affinity = ACTION_AFFINITY[component];\n if (!affinity) {\n // Unknown component - allow by default but warn\n return true;\n }\n return affinity.valid.includes(action) || !affinity.invalid.includes(action);\n}\n\n/**\n * Check if an action is explicitly invalid for a component\n */\nexport function isActionInvalidForComponent(action: string, component: string): boolean {\n const affinity = ACTION_AFFINITY[component];\n if (!affinity) {\n return false;\n }\n return affinity.invalid.includes(action);\n}\n\n/**\n * Get valid actions for a component\n */\nexport function getValidActionsForComponent(component: string): string[] {\n const affinity = ACTION_AFFINITY[component];\n return affinity?.valid ?? [];\n}\n\n/**\n * Get invalid actions for a component\n */\nexport function getInvalidActionsForComponent(component: string): string[] {\n const affinity = ACTION_AFFINITY[component];\n return affinity?.invalid ?? [];\n}\n\n/**\n * Get components that can emit a specific event\n */\nexport function getComponentsForEvent(event: string): string[] {\n return UI_EVENTS[event]?.emittedBy ?? [];\n}\n\n/**\n * Validate that a set of item actions are appropriate for a component\n *\n * @returns Array of validation errors (empty if valid)\n */\nexport function validateActionsForComponent(\n actions: Array<{ event?: string; label?: string }>,\n component: string\n): string[] {\n const errors: string[] = [];\n const affinity = ACTION_AFFINITY[component];\n\n if (!affinity) {\n // Unknown component - no validation\n return errors;\n }\n\n for (const action of actions) {\n if (action.event && affinity.invalid.includes(action.event)) {\n errors.push(\n `Action \"${action.event}\" is not valid on \"${component}\". ` +\n `Valid actions: ${affinity.valid.join(', ')}`\n );\n }\n }\n\n return errors;\n}\n\n/**\n * Get all known components in the affinity matrix\n */\nexport function getAllKnownComponents(): string[] {\n return Object.keys(ACTION_AFFINITY);\n}\n\n/**\n * Get all components by category\n */\nexport function getComponentsByCategory(): Record<string, string[]> {\n return {\n display: ['entity-table', 'entity-list', 'entity-cards', 'card-grid'],\n header: ['page-header'],\n form: ['form', 'form-section', 'form-actions'],\n detail: ['detail-panel', 'entity-detail'],\n container: ['modal', 'modal-container', 'drawer'],\n navigation: ['tabs', 'tab-bar', 'wizard-navigation', 'wizard-progress'],\n filter: ['filter-group', 'search-bar', 'search-input'],\n pagination: ['pagination'],\n confirmation: ['confirm-dialog'],\n state: ['empty-state', 'loading-state'],\n dashboard: ['stats'],\n game: [\n 'game-canvas',\n 'game-hud',\n 'game-controls',\n 'game-menu',\n 'game-pause-overlay',\n 'game-over-screen',\n ],\n };\n}\n","/**\n * UI Interaction Behaviors\n *\n * Standard behaviors for common UI interaction patterns.\n * These use the Trait architecture with stateMachine.\n *\n * IMPORTANT: These are GENERATION TEMPLATES for LLMs.\n * They must use correct syntax:\n * - render-ui (not render)\n * - Explicit from states (not '*')\n * - Valid pattern types (form-section, entity-detail, etc.)\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/List - Entity List Management\n// ============================================================================\n\n/**\n * std/List - The core behavior for displaying and interacting with entity collections.\n *\n * States: Browsing → Creating/Viewing/Editing/Deleting\n * Implements complete CRUD operations with modal/drawer UI patterns.\n */\nexport const LIST_BEHAVIOR: StandardBehavior = {\n name: 'std/List',\n category: 'ui-interaction',\n description: 'Entity list management with CRUD operations',\n suggestedFor: [\n 'Entity listing pages',\n 'Admin panels',\n 'Data management screens',\n 'Table views with inline actions',\n ],\n\n dataEntities: [\n {\n name: 'ListState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selectedId', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Browsing',\n states: [\n { name: 'Browsing', isInitial: true },\n { name: 'Creating' },\n { name: 'Viewing' },\n { name: 'Editing' },\n { name: 'Deleting' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'CREATE' },\n { key: 'VIEW' },\n { key: 'EDIT' },\n { key: 'DELETE' },\n { key: 'CONFIRM_DELETE' },\n { key: 'CANCEL' },\n { key: 'SAVE' },\n ],\n transitions: [\n // INIT: Self-loop on Browsing that renders the list UI\n {\n from: 'Browsing',\n to: 'Browsing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'page-header',\n title: '@config.title',\n actions: [{ label: 'Create', event: 'CREATE', variant: 'primary' }],\n }],\n ['render-ui', 'main', {\n type: 'entity-table',\n entity: '@config.entity',\n columns: '@config.columns',\n itemActions: [\n { label: 'View', event: 'VIEW', placement: 'row' },\n { label: 'Edit', event: 'EDIT', placement: 'row' },\n { label: 'Delete', event: 'DELETE', variant: 'danger', placement: 'row' },\n ],\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Creating',\n event: 'CREATE',\n effects: [\n ['render-ui', 'modal', {\n type: 'form-section',\n entity: '@config.entity',\n mode: 'create',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Viewing',\n event: 'VIEW',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'drawer', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n actions: [\n { label: 'Edit', event: 'EDIT' },\n { label: 'Close', event: 'CANCEL' },\n ],\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'drawer', {\n type: 'form-section',\n entity: '@config.entity',\n id: '@payload.id',\n mode: 'edit',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Viewing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['render-ui', 'drawer', {\n type: 'form-section',\n entity: '@config.entity',\n id: '@entity.selectedId',\n mode: 'edit',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Deleting',\n event: 'DELETE',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'modal', {\n type: 'confirmation',\n title: 'Delete Confirmation',\n message: 'Are you sure you want to delete this item?',\n confirmLabel: 'Delete',\n confirmVariant: 'danger',\n }],\n ],\n },\n {\n from: 'Creating',\n to: 'Browsing',\n event: 'SAVE',\n effects: [\n ['persist', 'create', '@config.entity', '@payload.data'],\n ['render-ui', 'modal', null],\n ['notify', { type: 'success', message: 'Created successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Editing',\n to: 'Browsing',\n event: 'SAVE',\n effects: [\n ['persist', 'update', '@config.entity', '@payload.data'],\n ['render-ui', 'drawer', null],\n ['notify', { type: 'success', message: 'Updated successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Deleting',\n to: 'Browsing',\n event: 'CONFIRM_DELETE',\n effects: [\n ['persist', 'delete', '@config.entity', '@entity.selectedId'],\n ['render-ui', 'modal', null],\n ['notify', { type: 'success', message: 'Deleted successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Creating',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n {\n from: 'Viewing',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n {\n from: 'Editing',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n {\n from: 'Deleting',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type to list' },\n { name: 'columns', type: 'array', description: 'Fields to display as columns' },\n ],\n optional: [\n { name: 'title', type: 'string', description: 'Page title', default: '' },\n { name: 'display', type: 'string', description: 'Display mode', default: 'table', enum: ['table', 'cards', 'list'] },\n { name: 'actions', type: 'action[]', description: 'Available actions', default: ['view', 'edit', 'delete'] },\n { name: 'createInModal', type: 'boolean', description: 'Show create form in modal', default: true },\n { name: 'editInDrawer', type: 'boolean', description: 'Show edit form in drawer', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Detail - Single Entity View\n// ============================================================================\n\nexport const DETAIL_BEHAVIOR: StandardBehavior = {\n name: 'std/Detail',\n category: 'ui-interaction',\n description: 'Single entity view with edit/delete capabilities',\n suggestedFor: [\n 'Entity detail pages',\n 'Profile views',\n 'Settings pages',\n 'Single record screens',\n ],\n\n dataEntities: [\n {\n name: 'DetailState',\n runtime: true,\n fields: [\n { name: 'entityId', type: 'string', default: null },\n { name: 'isLoading', type: 'boolean', default: false },\n { name: 'hasChanges', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Viewing',\n states: [\n { name: 'Viewing', isInitial: true },\n { name: 'Editing' },\n { name: 'Deleting' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'EDIT' },\n { key: 'SAVE' },\n { key: 'CANCEL' },\n { key: 'DELETE' },\n { key: 'CONFIRM_DELETE' },\n ],\n transitions: [\n // INIT: Self-loop on Viewing\n {\n from: 'Viewing',\n to: 'Viewing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'page-header',\n title: '@entity.name',\n actions: [\n { label: 'Edit', event: 'EDIT' },\n { label: 'Delete', event: 'DELETE', variant: 'danger' },\n ],\n }],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n fieldNames: '@config.fields',\n }],\n ],\n },\n {\n from: 'Viewing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n mode: 'edit',\n fields: '@config.fields',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Editing',\n to: 'Viewing',\n event: 'SAVE',\n effects: [\n ['persist', 'update', '@config.entity', '@payload.data'],\n ['notify', { type: 'success', message: 'Updated successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Editing',\n to: 'Viewing',\n event: 'CANCEL',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Viewing',\n to: 'Deleting',\n event: 'DELETE',\n effects: [\n ['render-ui', 'modal', {\n type: 'confirmation',\n title: 'Delete Confirmation',\n message: 'Are you sure you want to delete this item?',\n }],\n ],\n },\n {\n from: 'Deleting',\n to: 'Viewing',\n event: 'CONFIRM_DELETE',\n effects: [\n ['persist', 'delete', '@config.entity', '@entity.id'],\n ['navigate', '@config.returnUrl'],\n ],\n },\n {\n from: 'Deleting',\n to: 'Viewing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'fields', type: 'array', description: 'Fields to display' },\n ],\n optional: [\n { name: 'layout', type: 'string', description: 'Layout mode', default: 'two-column', enum: ['single-column', 'two-column', 'grid'] },\n { name: 'allowEdit', type: 'boolean', description: 'Allow editing', default: true },\n { name: 'allowDelete', type: 'boolean', description: 'Allow deletion', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Form - Form State Management\n// ============================================================================\n\nexport const FORM_BEHAVIOR: StandardBehavior = {\n name: 'std/Form',\n category: 'ui-interaction',\n description: 'Form state management with validation and submission',\n suggestedFor: [\n 'Create/edit forms',\n 'Settings forms',\n 'Multi-field input',\n 'Validated data entry',\n ],\n\n dataEntities: [\n {\n name: 'FormState',\n runtime: true,\n fields: [\n { name: 'values', type: 'object', default: {} },\n { name: 'errors', type: 'object', default: {} },\n { name: 'touched', type: 'object', default: {} },\n { name: 'isDirty', type: 'boolean', default: false },\n { name: 'isSubmitting', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Editing' },\n { name: 'Validating' },\n { name: 'Submitting' },\n { name: 'Success' },\n { name: 'Error' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'FIELD_CHANGE' },\n { key: 'FIELD_BLUR' },\n { key: 'SUBMIT' },\n { key: 'VALIDATION_PASSED' },\n { key: 'VALIDATION_FAILED' },\n { key: 'SUBMIT_SUCCESS' },\n { key: 'SUBMIT_ERROR' },\n { key: 'RESET' },\n ],\n transitions: [\n // INIT: Self-loop on Idle → Editing\n {\n from: 'Idle',\n to: 'Editing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.fields',\n values: '@entity.values',\n errors: '@entity.errors',\n submitEvent: 'SUBMIT',\n cancelEvent: '@config.cancelEvent',\n }],\n ],\n },\n {\n from: 'Editing',\n to: 'Editing',\n event: 'FIELD_CHANGE',\n effects: [\n ['set', '@entity.values', ['object/set', '@entity.values', '@payload.field', '@payload.value']],\n ['set', '@entity.isDirty', true],\n ],\n },\n {\n from: 'Editing',\n to: 'Editing',\n event: 'FIELD_BLUR',\n effects: [\n ['set', '@entity.touched', ['object/set', '@entity.touched', '@payload.field', true]],\n ],\n },\n {\n from: 'Editing',\n to: 'Validating',\n event: 'SUBMIT',\n effects: [\n ['let', [['result', ['validate/check', '@entity.values', '@config.validation']]],\n ['if', '@result.valid',\n ['emit', 'VALIDATION_PASSED'],\n ['do',\n ['set', '@entity.errors', '@result.errors'],\n ['emit', 'VALIDATION_FAILED']]]],\n ],\n },\n {\n from: 'Validating',\n to: 'Submitting',\n event: 'VALIDATION_PASSED',\n effects: [\n ['set', '@entity.isSubmitting', true],\n ['if', ['=', '@config.mode', 'create'],\n ['persist', 'create', '@config.entity', '@entity.values'],\n ['persist', 'update', '@config.entity', '@entity.values']],\n ],\n },\n {\n from: 'Validating',\n to: 'Editing',\n event: 'VALIDATION_FAILED',\n effects: [\n ['notify', { type: 'error', message: 'Please fix the validation errors' }],\n ],\n },\n {\n from: 'Submitting',\n to: 'Success',\n event: 'SUBMIT_SUCCESS',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['notify', { type: 'success', message: 'Saved successfully' }],\n ['emit', '@config.submitEvent', { data: '@entity.values' }],\n ],\n },\n {\n from: 'Submitting',\n to: 'Error',\n event: 'SUBMIT_ERROR',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['set', '@entity.errors', { _form: '@payload.error' }],\n ['notify', { type: 'error', message: '@payload.error' }],\n ],\n },\n {\n from: 'Editing',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.values', {}],\n ['set', '@entity.errors', {}],\n ['set', '@entity.touched', {}],\n ['set', '@entity.isDirty', false],\n ],\n },\n {\n from: 'Error',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.values', {}],\n ['set', '@entity.errors', {}],\n ['set', '@entity.touched', {}],\n ['set', '@entity.isDirty', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'fields', type: 'array', description: 'Form fields' },\n ],\n optional: [\n { name: 'mode', type: 'string', description: 'Form mode', default: 'create', enum: ['create', 'edit'] },\n { name: 'validation', type: 'object', description: 'Validation rules', default: {} },\n { name: 'submitEvent', type: 'event', description: 'Event to emit on successful submit', default: 'SAVE' },\n { name: 'cancelEvent', type: 'event', description: 'Event to emit on cancel', default: 'CANCEL' },\n ],\n },\n};\n\n// ============================================================================\n// std/Modal - Modal Dialog\n// ============================================================================\n\nexport const MODAL_BEHAVIOR: StandardBehavior = {\n name: 'std/Modal',\n category: 'ui-interaction',\n description: 'Modal dialog with open/close state management',\n suggestedFor: [\n 'Confirmation dialogs',\n 'Create forms',\n 'Detail views',\n 'Any overlay content',\n ],\n\n dataEntities: [\n {\n name: 'ModalState',\n runtime: true,\n fields: [\n { name: 'content', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Closed',\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'OPEN' },\n { key: 'CLOSE' },\n { key: 'CONFIRM' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'OPEN',\n effects: [\n ['set', '@entity.content', '@payload.content'],\n ['render-ui', 'modal', {\n type: '@payload.type',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CLOSE',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CONFIRM',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'size', type: 'string', description: 'Modal size', default: 'md', enum: ['sm', 'md', 'lg', 'xl', 'full'] },\n { name: 'closeOnOverlay', type: 'boolean', description: 'Close on overlay click', default: true },\n { name: 'closeOnEscape', type: 'boolean', description: 'Close on escape key', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Drawer - Side Drawer Panel\n// ============================================================================\n\nexport const DRAWER_BEHAVIOR: StandardBehavior = {\n name: 'std/Drawer',\n category: 'ui-interaction',\n description: 'Side drawer panel for detail views and forms',\n suggestedFor: [\n 'Detail panels',\n 'Edit forms',\n 'Property panels',\n 'Side navigation',\n ],\n\n dataEntities: [\n {\n name: 'DrawerState',\n runtime: true,\n fields: [\n { name: 'content', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Closed',\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'OPEN' },\n { key: 'CLOSE' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'OPEN',\n effects: [\n ['set', '@entity.content', '@payload.content'],\n ['render-ui', 'drawer', {\n type: '@payload.type',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CLOSE',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'position', type: 'string', description: 'Drawer position', default: 'right', enum: ['left', 'right'] },\n { name: 'size', type: 'string', description: 'Drawer size', default: 'md', enum: ['sm', 'md', 'lg'] },\n { name: 'overlay', type: 'boolean', description: 'Show overlay', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Tabs - Tabbed Navigation\n// ============================================================================\n\nexport const TABS_BEHAVIOR: StandardBehavior = {\n name: 'std/Tabs',\n category: 'ui-interaction',\n description: 'Tabbed navigation within a page',\n suggestedFor: [\n 'Multi-view pages',\n 'Settings with sections',\n 'Dashboard tabs',\n 'Profile sections',\n ],\n\n dataEntities: [\n {\n name: 'TabsState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'activeTab', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT_TAB' },\n ],\n transitions: [\n // INIT: Self-loop on Active\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.activeTab', '@config.defaultTab'],\n ['render-ui', 'main', {\n type: 'filter-group',\n filterType: 'tabs',\n tabs: '@config.tabs',\n active: '@entity.activeTab',\n onSelect: 'SELECT_TAB',\n }],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SELECT_TAB',\n effects: [\n ['set', '@entity.activeTab', '@payload.tabId'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'tabs', type: 'array', description: 'Tab definitions with id, label, content' },\n ],\n optional: [\n { name: 'defaultTab', type: 'string', description: 'Default active tab ID' },\n ],\n },\n};\n\n// ============================================================================\n// std/Wizard - Multi-Step Flow\n// IMPORTANT: Each step is a STATE, not an index number\n// ============================================================================\n\nexport const WIZARD_BEHAVIOR: StandardBehavior = {\n name: 'std/Wizard',\n category: 'ui-interaction',\n description: 'Multi-step wizard flow - each step is a state',\n suggestedFor: [\n 'Onboarding flows',\n 'Multi-step forms',\n 'Setup wizards',\n 'Checkout flows',\n ],\n\n dataEntities: [\n {\n name: 'WizardState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'stepData', type: 'object', default: {} },\n ],\n },\n ],\n\n // IMPORTANT: Each wizard step is a STATE, not a number index\n // This is the correct pattern for wizards\n stateMachine: {\n initial: 'Step1',\n states: [\n { name: 'Step1', isInitial: true },\n { name: 'Step2' },\n { name: 'Step3' },\n { name: 'Complete' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'NEXT' },\n { key: 'PREV' },\n { key: 'COMPLETE' },\n ],\n transitions: [\n // INIT on Step1: Self-loop that renders step 1\n {\n from: 'Step1',\n to: 'Step1',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 0,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step1Fields',\n submitEvent: 'NEXT',\n }],\n ],\n },\n // Step1 → Step2\n {\n from: 'Step1',\n to: 'Step2',\n event: 'NEXT',\n effects: [\n ['set', '@entity.stepData.step1', '@payload'],\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 1,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step2Fields',\n submitEvent: 'NEXT',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step2 → Step1 (back)\n {\n from: 'Step2',\n to: 'Step1',\n event: 'PREV',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n // Step2 → Step3\n {\n from: 'Step2',\n to: 'Step3',\n event: 'NEXT',\n effects: [\n ['set', '@entity.stepData.step2', '@payload'],\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 2,\n }],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n fieldNames: ['step1', 'step2'],\n title: 'Review',\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n submitLabel: 'Complete',\n cancelLabel: 'Back',\n submitEvent: 'COMPLETE',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step3 → Step2 (back)\n {\n from: 'Step3',\n to: 'Step2',\n event: 'PREV',\n effects: [\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 1,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step2Fields',\n submitEvent: 'NEXT',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step3 → Complete\n {\n from: 'Step3',\n to: 'Complete',\n event: 'COMPLETE',\n effects: [\n ['persist', 'create', '@config.entity', '@entity.stepData'],\n ['notify', { type: 'success', message: 'Wizard completed!' }],\n ['navigate', '@config.completionUrl'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity to create' },\n { name: 'step1Fields', type: 'array', description: 'Fields for step 1' },\n { name: 'step2Fields', type: 'array', description: 'Fields for step 2' },\n ],\n optional: [\n { name: 'completionUrl', type: 'string', description: 'URL to navigate on completion', default: '/' },\n ],\n },\n};\n\n// ============================================================================\n// std/MasterDetail - List + Detail Layout\n// ============================================================================\n\nexport const MASTER_DETAIL_BEHAVIOR: StandardBehavior = {\n name: 'std/MasterDetail',\n category: 'ui-interaction',\n description: 'Master-detail layout with synchronized list and detail views',\n suggestedFor: [\n 'Email clients',\n 'File managers',\n 'Two-panel layouts',\n 'List-detail views',\n ],\n\n dataEntities: [\n {\n name: 'MasterDetailState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selectedId', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'NoSelection',\n states: [\n { name: 'NoSelection', isInitial: true },\n { name: 'Selected' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT' },\n { key: 'DESELECT' },\n ],\n transitions: [\n // INIT: Self-loop on NoSelection\n {\n from: 'NoSelection',\n to: 'NoSelection',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'master-detail',\n entity: '@config.entity',\n masterColumns: '@config.masterColumns',\n onSelect: 'SELECT',\n selected: '@entity.selectedId',\n }],\n ['render-ui', 'main', {\n type: 'empty-state',\n message: 'Select an item to view details',\n }],\n ],\n },\n {\n from: 'NoSelection',\n to: 'Selected',\n event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n fieldNames: '@config.detailFields',\n }],\n ],\n },\n {\n from: 'Selected',\n to: 'Selected',\n event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n fieldNames: '@config.detailFields',\n }],\n ],\n },\n {\n from: 'Selected',\n to: 'NoSelection',\n event: 'DESELECT',\n effects: [\n ['set', '@entity.selectedId', null],\n ['render-ui', 'main', {\n type: 'empty-state',\n message: 'Select an item to view details',\n }],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'masterColumns', type: 'array', description: 'Columns for master list' },\n { name: 'detailFields', type: 'array', description: 'Fields for detail panel' },\n ],\n optional: [\n { name: 'masterWidth', type: 'string', description: 'Master panel width', default: '350px' },\n ],\n },\n};\n\n// ============================================================================\n// std/Filter - Filter Management\n// ============================================================================\n\nexport const FILTER_BEHAVIOR: StandardBehavior = {\n name: 'std/Filter',\n category: 'ui-interaction',\n description: 'Filter and search management for lists',\n suggestedFor: [\n 'Filtered lists',\n 'Search interfaces',\n 'Faceted navigation',\n 'Advanced filtering',\n ],\n\n dataEntities: [\n {\n name: 'FilterState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'filters', type: 'object', default: {} },\n { name: 'searchTerm', type: 'string', default: '' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Filtering' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SET_FILTER' },\n { key: 'CLEAR_FILTERS' },\n { key: 'SEARCH' },\n ],\n transitions: [\n // INIT: Self-loop\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'filter-group',\n filters: '@config.filters',\n values: '@entity.filters',\n onFilterChange: 'SET_FILTER',\n onClear: 'CLEAR_FILTERS',\n }],\n ],\n },\n {\n from: 'Idle',\n to: 'Filtering',\n event: 'SET_FILTER',\n effects: [\n ['set', '@entity.filters', ['object/set', '@entity.filters', '@payload.field', '@payload.value']],\n ['emit', 'FILTER_CHANGED', '@entity.filters'],\n ],\n },\n {\n from: 'Filtering',\n to: 'Idle',\n event: 'SET_FILTER',\n effects: [\n ['set', '@entity.filters', ['object/set', '@entity.filters', '@payload.field', '@payload.value']],\n ['emit', 'FILTER_CHANGED', '@entity.filters'],\n ],\n },\n {\n from: 'Filtering',\n to: 'Idle',\n event: 'CLEAR_FILTERS',\n effects: [\n ['set', '@entity.filters', {}],\n ['set', '@entity.searchTerm', ''],\n ['emit', 'FILTER_CHANGED', {}],\n ],\n },\n {\n from: 'Idle',\n to: 'Filtering',\n event: 'SEARCH',\n effects: [\n ['set', '@entity.searchTerm', '@payload.term'],\n ['emit', 'SEARCH_CHANGED', '@payload.term'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'filters', type: 'array', description: 'Filter definitions' },\n ],\n optional: [\n { name: 'searchable', type: 'boolean', description: 'Enable search', default: true },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const UI_INTERACTION_BEHAVIORS: StandardBehavior[] = [\n LIST_BEHAVIOR,\n DETAIL_BEHAVIOR,\n FORM_BEHAVIOR,\n MODAL_BEHAVIOR,\n DRAWER_BEHAVIOR,\n TABS_BEHAVIOR,\n WIZARD_BEHAVIOR,\n MASTER_DETAIL_BEHAVIOR,\n FILTER_BEHAVIOR,\n];\n","/**\n * Data Management Behaviors\n *\n * Standard behaviors for data operations like pagination, selection,\n * sorting, filtering, and search.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Pagination - Page Navigation\n// ============================================================================\n\n/**\n * std/Pagination - Page navigation behavior for large data sets.\n */\nexport const PAGINATION_BEHAVIOR: StandardBehavior = {\n name: 'std/Pagination',\n category: 'data-management',\n description: 'Page-based navigation for large data sets',\n suggestedFor: [\n 'Large lists',\n 'Table pagination',\n 'Infinite scroll alternative',\n 'Data-heavy views',\n ],\n\n dataEntities: [\n {\n name: 'PaginationState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'page', type: 'number', default: 1 },\n { name: 'pageSize', type: 'number', default: 20 },\n { name: 'totalItems', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'NEXT_PAGE' },\n { key: 'PREV_PAGE' },\n { key: 'GO_TO_PAGE' },\n { key: 'SET_PAGE_SIZE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.page', 1],\n ['set', '@entity.pageSize', '@config.defaultPageSize'],\n ],\n },\n {\n event: 'NEXT_PAGE',\n guard: ['<', '@entity.page', ['math/ceil', ['/', '@entity.totalItems', '@entity.pageSize']]],\n effects: [\n ['set', '@entity.page', ['+', '@entity.page', 1]],\n ],\n },\n {\n event: 'PREV_PAGE',\n guard: ['>', '@entity.page', 1],\n effects: [\n ['set', '@entity.page', ['-', '@entity.page', 1]],\n ],\n },\n {\n event: 'GO_TO_PAGE',\n guard: ['and',\n ['>=', '@payload.page', 1],\n ['<=', '@payload.page', ['math/ceil', ['/', '@entity.totalItems', '@entity.pageSize']]]],\n effects: [\n ['set', '@entity.page', '@payload.page'],\n ],\n },\n {\n event: 'SET_PAGE_SIZE',\n effects: [\n ['set', '@entity.pageSize', '@payload.size'],\n ['set', '@entity.page', 1],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'defaultPageSize', type: 'number', description: 'Default items per page', default: 20 },\n { name: 'pageSizeOptions', type: 'array', description: 'Available page sizes', default: [10, 20, 50, 100] },\n ],\n },\n};\n\n// ============================================================================\n// std/Selection - Single/Multi Selection\n// ============================================================================\n\nexport const SELECTION_BEHAVIOR: StandardBehavior = {\n name: 'std/Selection',\n category: 'data-management',\n description: 'Single or multi-selection management',\n suggestedFor: [\n 'Multi-select lists',\n 'Bulk operations',\n 'Item picking',\n 'Checkboxes in tables',\n ],\n\n dataEntities: [\n {\n name: 'SelectionState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selected', type: 'array', default: [] },\n { name: 'lastSelected', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT' },\n { key: 'DESELECT' },\n { key: 'TOGGLE' },\n { key: 'SELECT_ALL' },\n { key: 'CLEAR' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.selected', []],\n ['set', '@entity.lastSelected', null],\n ],\n },\n {\n event: 'SELECT',\n effects: [\n ['if', ['=', '@config.mode', 'single'],\n ['do',\n ['set', '@entity.selected', ['@payload.id']],\n ['set', '@entity.lastSelected', '@payload.id']],\n ['if', ['or',\n ['not', '@config.maxSelection'],\n ['<', ['array/len', '@entity.selected'], '@config.maxSelection']],\n ['do',\n ['set', '@entity.selected', ['array/append', '@entity.selected', '@payload.id']],\n ['set', '@entity.lastSelected', '@payload.id']],\n ['notify', { type: 'warning', message: 'Maximum selection reached' }]]],\n ],\n },\n {\n event: 'DESELECT',\n effects: [\n ['set', '@entity.selected', ['array/filter', '@entity.selected', ['fn', 'id', ['!=', '@id', '@payload.id']]]],\n ],\n },\n {\n event: 'TOGGLE',\n effects: [\n ['if', ['array/includes', '@entity.selected', '@payload.id'],\n ['set', '@entity.selected', ['array/filter', '@entity.selected', ['fn', 'id', ['!=', '@id', '@payload.id']]]],\n ['if', ['or', ['=', '@config.mode', 'single'], ['or',\n ['not', '@config.maxSelection'],\n ['<', ['array/len', '@entity.selected'], '@config.maxSelection']]],\n ['set', '@entity.selected',\n ['if', ['=', '@config.mode', 'single'],\n ['@payload.id'],\n ['array/append', '@entity.selected', '@payload.id']]],\n ['notify', { type: 'warning', message: 'Maximum selection reached' }]]],\n ],\n },\n {\n event: 'SELECT_ALL',\n guard: ['=', '@config.mode', 'multi'],\n effects: [\n ['set', '@entity.selected', '@payload.ids'],\n ],\n },\n {\n event: 'CLEAR',\n effects: [\n ['set', '@entity.selected', []],\n ['set', '@entity.lastSelected', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'mode', type: 'string', description: 'Selection mode', default: 'single', enum: ['single', 'multi'] },\n { name: 'maxSelection', type: 'number', description: 'Maximum selections (multi mode)', default: null },\n ],\n },\n};\n\n// ============================================================================\n// std/Sort - Sorting\n// ============================================================================\n\nexport const SORT_BEHAVIOR: StandardBehavior = {\n name: 'std/Sort',\n category: 'data-management',\n description: 'Sorting by field with direction toggle',\n suggestedFor: [\n 'Sortable tables',\n 'List ordering',\n 'Column headers',\n ],\n\n dataEntities: [\n {\n name: 'SortState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'sortField', type: 'string', default: null },\n { name: 'sortDirection', type: 'string', default: 'asc' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SORT' },\n { key: 'TOGGLE_DIRECTION' },\n { key: 'CLEAR_SORT' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.sortField', '@config.defaultField'],\n ['set', '@entity.sortDirection', '@config.defaultDirection'],\n ],\n },\n {\n event: 'SORT',\n effects: [\n ['if', ['=', '@entity.sortField', '@payload.field'],\n ['set', '@entity.sortDirection', ['if', ['=', '@entity.sortDirection', 'asc'], 'desc', 'asc']],\n ['do',\n ['set', '@entity.sortField', '@payload.field'],\n ['set', '@entity.sortDirection', 'asc']]],\n ],\n },\n {\n event: 'TOGGLE_DIRECTION',\n guard: ['!=', '@entity.sortField', null],\n effects: [\n ['set', '@entity.sortDirection', ['if', ['=', '@entity.sortDirection', 'asc'], 'desc', 'asc']],\n ],\n },\n {\n event: 'CLEAR_SORT',\n effects: [\n ['set', '@entity.sortField', null],\n ['set', '@entity.sortDirection', 'asc'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'defaultField', type: 'string', description: 'Default sort field' },\n { name: 'defaultDirection', type: 'string', description: 'Default direction', default: 'asc', enum: ['asc', 'desc'] },\n ],\n },\n};\n\n// ============================================================================\n// std/Filter - Query Singleton Pattern for Filtering\n// ============================================================================\n\n/**\n * std/Filter - Query Singleton pattern for explicit filtering.\n *\n * This behavior uses a singleton entity to hold filter state, making filtering\n * explicit in the schema rather than implicit in component behavior.\n *\n * The query singleton is referenced by patterns via the `query` prop:\n * ```json\n * { \"type\": \"entity-table\", \"entity\": \"Task\", \"query\": \"@TaskQuery\" }\n * ```\n */\nexport const FILTER_BEHAVIOR: StandardBehavior = {\n name: 'std/Filter',\n category: 'data-management',\n description: 'Query Singleton pattern for explicit filtering - use with entity-table query prop',\n suggestedFor: [\n 'Filterable lists',\n 'Advanced search',\n 'Filter panels',\n 'Faceted search',\n 'Entity tables with filters',\n ],\n\n dataEntities: [\n {\n name: 'QueryState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'status', type: 'string', default: null, description: 'Filter by status field' },\n { name: 'priority', type: 'string', default: null, description: 'Filter by priority field' },\n { name: 'search', type: 'string', default: '', description: 'Search term' },\n { name: 'sortBy', type: 'string', default: 'createdAt', description: 'Sort field' },\n { name: 'sortOrder', type: 'string', default: 'desc', description: 'Sort direction: asc or desc' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'FILTER' },\n { key: 'SEARCH' },\n { key: 'SORT' },\n { key: 'CLEAR_FILTERS' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n // Render filter UI with query reference\n ['render-ui', 'sidebar', {\n type: 'filter-group',\n query: '@QueryState',\n filters: '@config.filters',\n }],\n // Render entity table with query reference\n ['render-ui', 'main', {\n type: 'entity-table',\n entity: '@config.entity',\n query: '@QueryState',\n columns: '@config.columns',\n }],\n ],\n },\n {\n event: 'FILTER',\n effects: [\n ['set', '@QueryState.status', '@payload.status'],\n ['set', '@QueryState.priority', '@payload.priority'],\n ],\n },\n {\n event: 'SEARCH',\n effects: [\n ['set', '@QueryState.search', '@payload.searchTerm'],\n ],\n },\n {\n event: 'SORT',\n effects: [\n ['set', '@QueryState.sortBy', '@payload.field'],\n ['set', '@QueryState.sortOrder', '@payload.order'],\n ],\n },\n {\n event: 'CLEAR_FILTERS',\n effects: [\n ['set', '@QueryState.status', null],\n ['set', '@QueryState.priority', null],\n ['set', '@QueryState.search', ''],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'string', description: 'Entity to filter' },\n ],\n optional: [\n { name: 'filters', type: 'array', description: 'Filter field definitions', default: [] },\n { name: 'columns', type: 'array', description: 'Table columns to display', default: [] },\n ],\n },\n};\n\n// ============================================================================\n// std/Search - Search with Debounce\n// ============================================================================\n\n/**\n * std/Search - Search with debounce.\n *\n * Uses a singleton to hold search state. Can be combined with std/Filter\n * for full query singleton functionality, or used standalone.\n */\nexport const SEARCH_BEHAVIOR: StandardBehavior = {\n name: 'std/Search',\n category: 'data-management',\n description: 'Search with debounce - updates QueryState.search field',\n suggestedFor: [\n 'Search inputs',\n 'Quick filters',\n 'Global search',\n 'Type-ahead',\n ],\n\n dataEntities: [\n {\n name: 'SearchState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'search', type: 'string', default: '' },\n { name: 'isSearching', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Searching' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SEARCH' },\n { key: 'CLEAR_SEARCH' },\n { key: 'SEARCH_COMPLETE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ['render-ui', 'main', {\n type: 'search-bar',\n query: '@SearchState',\n placeholder: '@config.placeholder',\n }],\n ],\n },\n {\n from: 'Idle',\n to: 'Searching',\n event: 'SEARCH',\n guard: ['>=', ['str/len', '@payload.term'], '@config.minLength'],\n effects: [\n ['set', '@entity.search', '@payload.term'],\n ['set', '@entity.isSearching', true],\n ['async/debounce', '@config.debounceMs', ['emit', 'SEARCH_COMPLETE']],\n ],\n },\n {\n from: 'Idle',\n event: 'SEARCH',\n guard: ['<', ['str/len', '@payload.term'], '@config.minLength'],\n effects: [\n ['set', '@entity.search', '@payload.term'],\n ],\n },\n {\n from: 'Searching',\n to: 'Idle',\n event: 'SEARCH_COMPLETE',\n effects: [\n ['set', '@entity.isSearching', false],\n ],\n },\n {\n event: 'CLEAR_SEARCH',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'debounceMs', type: 'number', description: 'Debounce delay in ms', default: 300 },\n { name: 'minLength', type: 'number', description: 'Minimum search length', default: 1 },\n { name: 'placeholder', type: 'string', description: 'Input placeholder', default: 'Search...' },\n ],\n },\n};\n\n// ============================================================================\n// Export All Data Management Behaviors\n// ============================================================================\n\nexport const DATA_MANAGEMENT_BEHAVIORS: StandardBehavior[] = [\n PAGINATION_BEHAVIOR,\n SELECTION_BEHAVIOR,\n SORT_BEHAVIOR,\n FILTER_BEHAVIOR,\n SEARCH_BEHAVIOR,\n];\n","/**\n * Async Behaviors\n *\n * Standard behaviors for asynchronous operations like loading,\n * fetching, submission, retry, and polling.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Loading - Loading State Management\n// ============================================================================\n\nexport const LOADING_BEHAVIOR: StandardBehavior = {\n name: 'std/Loading',\n category: 'async',\n description: 'Loading state management with success/error handling',\n suggestedFor: [\n 'Async data loading',\n 'API calls',\n 'Resource fetching',\n 'Initial page load',\n ],\n\n dataEntities: [\n {\n name: 'LoadingState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'isLoading', type: 'boolean', default: false },\n { name: 'error', type: 'object', default: null },\n { name: 'data', type: 'object', default: null },\n { name: 'startTime', type: 'number', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Loading' },\n { name: 'Success' },\n { name: 'Error' },\n ],\n events: [\n { key: 'START' },\n { key: 'SUCCESS' },\n { key: 'ERROR' },\n { key: 'RETRY' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Loading',\n event: 'START',\n effects: [\n ['set', '@entity.isLoading', true],\n ['set', '@entity.error', null],\n ['set', '@entity.startTime', ['time/now']],\n ['render', 'content', 'loading-state', {}],\n ],\n },\n {\n from: 'Loading',\n to: 'Success',\n event: 'SUCCESS',\n effects: [\n ['set', '@entity.isLoading', false],\n ['set', '@entity.data', '@payload.data'],\n ],\n },\n {\n from: 'Loading',\n to: 'Error',\n event: 'ERROR',\n effects: [\n ['set', '@entity.isLoading', false],\n ['set', '@entity.error', '@payload.error'],\n ['render', 'content', 'error-state', {\n error: '@entity.error',\n onRetry: 'RETRY',\n }],\n ],\n },\n {\n from: 'Error',\n to: 'Loading',\n event: 'RETRY',\n effects: [\n ['set', '@entity.isLoading', true],\n ['set', '@entity.error', null],\n ['set', '@entity.startTime', ['time/now']],\n ['render', 'content', 'loading-state', {}],\n ],\n },\n {\n from: ['Success', 'Error'],\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.isLoading', false],\n ['set', '@entity.error', null],\n ['set', '@entity.data', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'showLoadingAfterMs', type: 'number', description: 'Delay before showing loading', default: 200 },\n { name: 'minLoadingMs', type: 'number', description: 'Minimum loading display time', default: 500 },\n ],\n },\n};\n\n// ============================================================================\n// std/Fetch - Data Fetching\n// ============================================================================\n\nexport const FETCH_BEHAVIOR: StandardBehavior = {\n name: 'std/Fetch',\n category: 'async',\n description: 'Data fetching with caching and refresh capabilities',\n suggestedFor: [\n 'API data fetching',\n 'Entity loading',\n 'Remote data',\n 'Cached queries',\n ],\n\n dataEntities: [\n {\n name: 'FetchState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'data', type: 'object', default: null },\n { name: 'error', type: 'object', default: null },\n { name: 'isFetching', type: 'boolean', default: false },\n { name: 'lastFetchedAt', type: 'number', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Fetching' },\n { name: 'Stale' },\n { name: 'Fresh' },\n { name: 'Error' },\n ],\n events: [\n { key: 'FETCH' },\n { key: 'FETCH_SUCCESS' },\n { key: 'FETCH_ERROR' },\n { key: 'REFRESH' },\n { key: 'INVALIDATE' },\n ],\n transitions: [\n {\n from: ['Idle', 'Stale'],\n to: 'Fetching',\n event: 'FETCH',\n effects: [\n ['set', '@entity.isFetching', true],\n ['set', '@entity.error', null],\n ],\n },\n {\n from: 'Fetching',\n to: 'Fresh',\n event: 'FETCH_SUCCESS',\n effects: [\n ['set', '@entity.isFetching', false],\n ['set', '@entity.data', '@payload.data'],\n ['set', '@entity.lastFetchedAt', ['time/now']],\n ],\n },\n {\n from: 'Fetching',\n to: 'Error',\n event: 'FETCH_ERROR',\n effects: [\n ['set', '@entity.isFetching', false],\n ['set', '@entity.error', '@payload.error'],\n ],\n },\n {\n from: 'Fresh',\n to: 'Stale',\n event: 'INVALIDATE',\n effects: [\n ['set', '@entity.lastFetchedAt', null],\n ],\n },\n {\n from: ['Fresh', 'Stale', 'Error'],\n to: 'Fetching',\n event: 'REFRESH',\n effects: [\n ['set', '@entity.isFetching', true],\n ['set', '@entity.error', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type to fetch' },\n ],\n optional: [\n { name: 'staleTimeMs', type: 'number', description: 'Time until data is stale', default: 60000 },\n { name: 'cacheKey', type: 'string', description: 'Cache key for deduplication' },\n ],\n },\n};\n\n// ============================================================================\n// std/Submit - Form Submission\n// ============================================================================\n\nexport const SUBMIT_BEHAVIOR: StandardBehavior = {\n name: 'std/Submit',\n category: 'async',\n description: 'Async submission with retry capabilities',\n suggestedFor: [\n 'Form submission',\n 'Data saving',\n 'API mutations',\n 'Actions with confirmation',\n ],\n\n dataEntities: [\n {\n name: 'SubmitState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'isSubmitting', type: 'boolean', default: false },\n { name: 'error', type: 'object', default: null },\n { name: 'lastSubmittedData', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Submitting' },\n { name: 'Success' },\n { name: 'Error' },\n ],\n events: [\n { key: 'SUBMIT' },\n { key: 'SUBMIT_SUCCESS' },\n { key: 'SUBMIT_ERROR' },\n { key: 'RETRY' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Submitting',\n event: 'SUBMIT',\n effects: [\n ['set', '@entity.isSubmitting', true],\n ['set', '@entity.error', null],\n ['set', '@entity.lastSubmittedData', '@payload.data'],\n ],\n },\n {\n from: 'Submitting',\n to: 'Success',\n event: 'SUBMIT_SUCCESS',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['notify', { type: 'success', message: '@config.successMessage' }],\n ['when', '@config.resetOnSuccess', ['emit', 'RESET']],\n ],\n },\n {\n from: 'Submitting',\n to: 'Error',\n event: 'SUBMIT_ERROR',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['set', '@entity.error', '@payload.error'],\n ['notify', { type: 'error', message: '@config.errorMessage' }],\n ],\n },\n {\n from: 'Error',\n to: 'Submitting',\n event: 'RETRY',\n effects: [\n ['set', '@entity.isSubmitting', true],\n ['set', '@entity.error', null],\n ],\n },\n {\n from: ['Success', 'Error'],\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['set', '@entity.error', null],\n ['set', '@entity.lastSubmittedData', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'successMessage', type: 'string', description: 'Success notification', default: 'Saved successfully' },\n { name: 'errorMessage', type: 'string', description: 'Error notification', default: 'Failed to save' },\n { name: 'resetOnSuccess', type: 'boolean', description: 'Reset to idle on success', default: false },\n ],\n },\n};\n\n// ============================================================================\n// std/Retry - Automatic Retry\n// ============================================================================\n\nexport const RETRY_BEHAVIOR: StandardBehavior = {\n name: 'std/Retry',\n category: 'async',\n description: 'Automatic retry with exponential backoff',\n suggestedFor: [\n 'Network requests',\n 'Unreliable operations',\n 'Transient failures',\n 'Recovery logic',\n ],\n\n dataEntities: [\n {\n name: 'RetryState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'attempt', type: 'number', default: 0 },\n { name: 'error', type: 'object', default: null },\n { name: 'nextRetryAt', type: 'number', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Attempting' },\n { name: 'Waiting' },\n { name: 'Success' },\n { name: 'Failed' },\n ],\n events: [\n { key: 'START' },\n { key: 'ATTEMPT_SUCCESS' },\n { key: 'ATTEMPT_ERROR' },\n { key: 'RETRY_TICK' },\n { key: 'GIVE_UP' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Attempting',\n event: 'START',\n effects: [\n ['set', '@entity.attempt', 1],\n ['set', '@entity.error', null],\n ],\n },\n {\n from: 'Attempting',\n to: 'Success',\n event: 'ATTEMPT_SUCCESS',\n effects: [],\n },\n {\n from: 'Attempting',\n to: 'Waiting',\n event: 'ATTEMPT_ERROR',\n guard: ['<', '@entity.attempt', '@config.maxAttempts'],\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['let', [['delay', ['math/min',\n ['*', '@config.initialDelayMs', ['math/pow', '@config.backoffMultiplier', '@entity.attempt']],\n '@config.maxDelayMs']]],\n ['set', '@entity.nextRetryAt', ['+', ['time/now'], '@delay']],\n ['async/delay', '@delay', ['emit', 'RETRY_TICK']]],\n ],\n },\n {\n from: 'Attempting',\n to: 'Failed',\n event: 'ATTEMPT_ERROR',\n guard: ['>=', '@entity.attempt', '@config.maxAttempts'],\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['notify', { type: 'error', message: 'All retry attempts failed' }],\n ],\n },\n {\n from: 'Waiting',\n to: 'Attempting',\n event: 'RETRY_TICK',\n effects: [\n ['set', '@entity.attempt', ['+', '@entity.attempt', 1]],\n ],\n },\n {\n from: 'Waiting',\n to: 'Failed',\n event: 'GIVE_UP',\n effects: [\n ['notify', { type: 'warning', message: 'Retry cancelled' }],\n ],\n },\n {\n from: ['Success', 'Failed'],\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.attempt', 0],\n ['set', '@entity.error', null],\n ['set', '@entity.nextRetryAt', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'maxAttempts', type: 'number', description: 'Maximum retry attempts', default: 3 },\n { name: 'initialDelayMs', type: 'number', description: 'Initial retry delay', default: 1000 },\n { name: 'maxDelayMs', type: 'number', description: 'Maximum retry delay', default: 30000 },\n { name: 'backoffMultiplier', type: 'number', description: 'Backoff multiplier', default: 2 },\n ],\n },\n};\n\n// ============================================================================\n// std/Poll - Periodic Polling\n// ============================================================================\n\nexport const POLL_BEHAVIOR: StandardBehavior = {\n name: 'std/Poll',\n category: 'async',\n description: 'Periodic polling with start/stop control',\n suggestedFor: [\n 'Real-time updates',\n 'Status checking',\n 'Live data',\n 'Notification polling',\n ],\n\n dataEntities: [\n {\n name: 'PollState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'isPolling', type: 'boolean', default: false },\n { name: 'pollCount', type: 'number', default: 0 },\n { name: 'lastPollAt', type: 'number', default: null },\n { name: 'error', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Stopped',\n states: [\n { name: 'Stopped', isInitial: true },\n { name: 'Polling' },\n { name: 'Paused' },\n ],\n events: [\n { key: 'START' },\n { key: 'STOP' },\n { key: 'PAUSE' },\n { key: 'RESUME' },\n { key: 'POLL_TICK' },\n { key: 'POLL_SUCCESS' },\n { key: 'POLL_ERROR' },\n ],\n transitions: [\n {\n from: 'Stopped',\n to: 'Polling',\n event: 'START',\n effects: [\n ['set', '@entity.isPolling', true],\n ['set', '@entity.pollCount', 0],\n ['async/interval', '@config.intervalMs', ['emit', 'POLL_TICK']],\n ],\n },\n {\n from: 'Polling',\n event: 'POLL_TICK',\n guard: ['or', ['=', '@config.maxPolls', null], ['<', '@entity.pollCount', '@config.maxPolls']],\n effects: [\n ['set', '@entity.lastPollAt', ['time/now']],\n ],\n },\n {\n from: 'Polling',\n event: 'POLL_SUCCESS',\n effects: [\n ['set', '@entity.pollCount', ['+', '@entity.pollCount', 1]],\n ['set', '@entity.error', null],\n ],\n },\n {\n from: 'Polling',\n event: 'POLL_ERROR',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['when', '@config.stopOnError', ['emit', 'STOP']],\n ],\n },\n {\n from: 'Polling',\n to: 'Paused',\n event: 'PAUSE',\n effects: [\n ['set', '@entity.isPolling', false],\n ],\n },\n {\n from: 'Paused',\n to: 'Polling',\n event: 'RESUME',\n effects: [\n ['set', '@entity.isPolling', true],\n ['async/interval', '@config.intervalMs', ['emit', 'POLL_TICK']],\n ],\n },\n {\n from: ['Polling', 'Paused'],\n to: 'Stopped',\n event: 'STOP',\n effects: [\n ['set', '@entity.isPolling', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'intervalMs', type: 'number', description: 'Poll interval in ms', default: 5000 },\n { name: 'stopOnError', type: 'boolean', description: 'Stop polling on error', default: false },\n { name: 'maxPolls', type: 'number', description: 'Maximum poll count (null = infinite)', default: null },\n ],\n },\n};\n\n// ============================================================================\n// Export All Async Behaviors\n// ============================================================================\n\nexport const ASYNC_BEHAVIORS: StandardBehavior[] = [\n LOADING_BEHAVIOR,\n FETCH_BEHAVIOR,\n SUBMIT_BEHAVIOR,\n RETRY_BEHAVIOR,\n POLL_BEHAVIOR,\n];\n","/**\n * Feedback Behaviors\n *\n * Standard behaviors for user feedback including notifications,\n * confirmations, and undo functionality.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Notification - Toast Notifications\n// ============================================================================\n\nexport const NOTIFICATION_BEHAVIOR: StandardBehavior = {\n name: 'std/Notification',\n category: 'feedback',\n description: 'Toast notification with auto-dismiss',\n suggestedFor: [\n 'Success messages',\n 'Error alerts',\n 'Status updates',\n 'User feedback',\n ],\n\n dataEntities: [\n {\n name: 'NotificationState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'notifications', type: 'array', default: [] },\n { name: 'currentId', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Hidden',\n states: [\n { name: 'Hidden', isInitial: true },\n { name: 'Visible' },\n { name: 'Dismissing' },\n ],\n events: [\n { key: 'SHOW' },\n { key: 'HIDE' },\n { key: 'DISMISS' },\n { key: 'AUTO_DISMISS' },\n ],\n transitions: [\n {\n from: '*',\n event: 'SHOW',\n effects: [\n ['let', [['id', ['+', '@entity.currentId', 1]]],\n ['do',\n ['set', '@entity.currentId', '@id'],\n ['set', '@entity.notifications',\n ['array/append', '@entity.notifications', {\n id: '@id',\n type: '@payload.type',\n message: '@payload.message',\n title: '@payload.title',\n }]],\n ['when', ['>', '@config.autoDismissMs', 0],\n ['async/delay', '@config.autoDismissMs', ['emit', 'AUTO_DISMISS', { id: '@id' }]]]]],\n ],\n },\n {\n event: 'DISMISS',\n effects: [\n ['set', '@entity.notifications',\n ['array/filter', '@entity.notifications', ['fn', 'n', ['!=', '@n.id', '@payload.id']]]],\n ],\n },\n {\n event: 'AUTO_DISMISS',\n effects: [\n ['set', '@entity.notifications',\n ['array/filter', '@entity.notifications', ['fn', 'n', ['!=', '@n.id', '@payload.id']]]],\n ],\n },\n {\n event: 'HIDE',\n effects: [\n ['set', '@entity.notifications', []],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'autoDismissMs', type: 'number', description: 'Auto dismiss delay (0 = no auto)', default: 5000 },\n { name: 'position', type: 'string', description: 'Toast position', default: 'top-right', enum: ['top-left', 'top-center', 'top-right', 'bottom-left', 'bottom-center', 'bottom-right'] },\n { name: 'maxVisible', type: 'number', description: 'Maximum visible notifications', default: 5 },\n ],\n },\n};\n\n// ============================================================================\n// std/Confirmation - Confirmation Dialog\n// ============================================================================\n\nexport const CONFIRMATION_BEHAVIOR: StandardBehavior = {\n name: 'std/Confirmation',\n category: 'feedback',\n description: 'Confirmation dialog with confirm/cancel actions',\n suggestedFor: [\n 'Delete confirmation',\n 'Destructive actions',\n 'Important decisions',\n 'Exit warnings',\n ],\n\n dataEntities: [\n {\n name: 'ConfirmationState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'title', type: 'string', default: '' },\n { name: 'message', type: 'string', default: '' },\n { name: 'pendingAction', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Closed',\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'REQUEST' },\n { key: 'CONFIRM' },\n { key: 'CANCEL' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'REQUEST',\n effects: [\n ['set', '@entity.title', '@payload.title'],\n ['set', '@entity.message', '@payload.message'],\n ['set', '@entity.pendingAction', '@payload.onConfirm'],\n ['render-ui', 'modal', {\n type: 'confirmation',\n title: '@entity.title',\n message: '@entity.message',\n confirmLabel: '@config.confirmLabel',\n cancelLabel: '@config.cancelLabel',\n confirmVariant: '@config.confirmVariant',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CONFIRM',\n effects: [\n ['render-ui', 'modal', null],\n ['when', '@entity.pendingAction', ['emit', '@entity.pendingAction.event', '@entity.pendingAction.payload']],\n ['set', '@entity.pendingAction', null],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ['set', '@entity.pendingAction', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'confirmLabel', type: 'string', description: 'Confirm button label', default: 'Confirm' },\n { name: 'cancelLabel', type: 'string', description: 'Cancel button label', default: 'Cancel' },\n { name: 'confirmVariant', type: 'string', description: 'Confirm button variant', default: 'primary', enum: ['primary', 'danger', 'warning'] },\n ],\n },\n};\n\n// ============================================================================\n// std/Undo - Undo Stack\n// ============================================================================\n\nexport const UNDO_BEHAVIOR: StandardBehavior = {\n name: 'std/Undo',\n category: 'feedback',\n description: 'Undo/redo stack for reversible actions',\n suggestedFor: [\n 'Document editing',\n 'Form changes',\n 'Canvas operations',\n 'Reversible actions',\n ],\n\n dataEntities: [\n {\n name: 'UndoState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'undoStack', type: 'array', default: [] },\n { name: 'redoStack', type: 'array', default: [] },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Ready',\n states: [\n { name: 'Ready', isInitial: true },\n ],\n events: [\n { key: 'PUSH' },\n { key: 'UNDO' },\n { key: 'REDO' },\n { key: 'CLEAR' },\n ],\n transitions: [\n {\n event: 'PUSH',\n effects: [\n ['set', '@entity.undoStack',\n ['array/slice',\n ['array/prepend', '@entity.undoStack', {\n action: '@payload.action',\n data: '@payload.data',\n reverseAction: '@payload.reverseAction',\n reverseData: '@payload.reverseData',\n description: '@payload.description',\n }],\n 0, '@config.maxHistory']],\n ['set', '@entity.redoStack', []],\n ['when', '@config.showToast',\n ['emit', 'NOTIFY', {\n type: 'info',\n message: ['str/concat', '@payload.description', ' - Click to undo'],\n action: { label: 'Undo', event: 'UNDO' },\n }]],\n ],\n },\n {\n event: 'UNDO',\n guard: ['>', ['array/len', '@entity.undoStack'], 0],\n effects: [\n ['let', [['action', ['array/first', '@entity.undoStack']]],\n ['do',\n ['set', '@entity.undoStack', ['array/slice', '@entity.undoStack', 1]],\n ['set', '@entity.redoStack', ['array/prepend', '@entity.redoStack', '@action']],\n ['emit', '@action.reverseAction', '@action.reverseData']]],\n ],\n },\n {\n event: 'REDO',\n guard: ['>', ['array/len', '@entity.redoStack'], 0],\n effects: [\n ['let', [['action', ['array/first', '@entity.redoStack']]],\n ['do',\n ['set', '@entity.redoStack', ['array/slice', '@entity.redoStack', 1]],\n ['set', '@entity.undoStack', ['array/prepend', '@entity.undoStack', '@action']],\n ['emit', '@action.action', '@action.data']]],\n ],\n },\n {\n event: 'CLEAR',\n effects: [\n ['set', '@entity.undoStack', []],\n ['set', '@entity.redoStack', []],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'maxHistory', type: 'number', description: 'Maximum undo history', default: 50 },\n { name: 'showToast', type: 'boolean', description: 'Show undo toast', default: true },\n { name: 'toastDurationMs', type: 'number', description: 'Toast display duration', default: 5000 },\n ],\n },\n};\n\n// ============================================================================\n// Export All Feedback Behaviors\n// ============================================================================\n\nexport const FEEDBACK_BEHAVIORS: StandardBehavior[] = [\n NOTIFICATION_BEHAVIOR,\n CONFIRMATION_BEHAVIOR,\n UNDO_BEHAVIOR,\n];\n","/**\n * Game Core Behaviors\n *\n * Foundation behaviors for game systems: loop, physics, input, collision.\n * These use the Trait architecture with stateMachine and ticks.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/GameLoop - Master Game Tick Coordination\n// ============================================================================\n\n/**\n * std/GameLoop - Coordinates game tick execution at 60fps.\n *\n * States: Running, Paused\n * Provides the master clock for all game systems.\n */\nexport const GAME_LOOP_BEHAVIOR: StandardBehavior = {\n name: 'std/GameLoop',\n category: 'game-core',\n description: 'Master game loop coordinator running at 60fps',\n suggestedFor: [\n 'All real-time games',\n 'Platformers',\n 'Action games',\n 'Endless runners',\n ],\n\n dataEntities: [\n {\n name: 'GameLoopState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'frameCount', type: 'number', default: 0 },\n { name: 'deltaTime', type: 'number', default: 16 },\n { name: 'elapsedTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Stopped',\n states: [\n { name: 'Stopped', isInitial: true },\n { name: 'Running' },\n { name: 'Paused' },\n ],\n events: [\n { key: 'START' },\n { key: 'STOP' },\n { key: 'PAUSE' },\n { key: 'RESUME' },\n { key: 'TICK' },\n ],\n transitions: [\n {\n from: 'Stopped',\n to: 'Running',\n event: 'START',\n effects: [\n ['set', '@entity.frameCount', 0],\n ['set', '@entity.elapsedTime', 0],\n ],\n },\n {\n from: 'Running',\n to: 'Paused',\n event: 'PAUSE',\n effects: [],\n },\n {\n from: 'Paused',\n to: 'Running',\n event: 'RESUME',\n effects: [],\n },\n {\n from: ['Running', 'Paused'],\n to: 'Stopped',\n event: 'STOP',\n effects: [],\n },\n ],\n },\n\n ticks: [\n {\n name: 'GameTick',\n interval: 'frame',\n guard: ['=', '@state', 'Running'],\n effects: [\n ['set', '@entity.frameCount', ['+', '@entity.frameCount', 1]],\n ['set', '@entity.elapsedTime', ['+', '@entity.elapsedTime', '@entity.deltaTime']],\n ['emit', 'GAME_TICK', { frame: '@entity.frameCount', delta: '@entity.deltaTime' }],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'targetFps', type: 'number', description: 'Target frames per second', default: 60 },\n { name: 'fixedTimestep', type: 'boolean', description: 'Use fixed timestep', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Physics2D - Gravity and Velocity\n// ============================================================================\n\n/**\n * std/Physics2D - 2D physics with gravity, velocity, and friction.\n *\n * Applied to entities that need physics simulation.\n */\nexport const PHYSICS_2D_BEHAVIOR: StandardBehavior = {\n name: 'std/Physics2D',\n category: 'game-core',\n description: '2D physics with gravity, velocity, and friction',\n suggestedFor: [\n 'Platformer characters',\n 'Falling objects',\n 'Projectiles',\n 'Any entity affected by gravity',\n ],\n\n requiredFields: [\n { name: 'x', type: 'number', description: 'Entity X position' },\n { name: 'y', type: 'number', description: 'Entity Y position' },\n ],\n\n dataEntities: [\n {\n name: 'Physics2DState',\n runtime: true,\n fields: [\n { name: 'vx', type: 'number', default: 0 },\n { name: 'vy', type: 'number', default: 0 },\n { name: 'isGrounded', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n { name: 'Frozen' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'APPLY_FORCE' },\n { key: 'GROUND_HIT' },\n { key: 'FREEZE' },\n { key: 'UNFREEZE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.vx', 0],\n ['set', '@entity.vy', 0],\n ['set', '@entity.isGrounded', false],\n ],\n },\n {\n from: 'Active',\n event: 'APPLY_FORCE',\n effects: [\n ['set', '@entity.vx', ['+', '@entity.vx', '@payload.fx']],\n ['set', '@entity.vy', ['+', '@entity.vy', '@payload.fy']],\n ],\n },\n {\n from: 'Active',\n event: 'GROUND_HIT',\n effects: [\n ['set', '@entity.isGrounded', true],\n ['set', '@entity.vy', 0],\n ['set', '@entity.vx', ['*', '@entity.vx', '@config.friction']],\n ],\n },\n {\n from: 'Active',\n to: 'Frozen',\n event: 'FREEZE',\n effects: [],\n },\n {\n from: 'Frozen',\n to: 'Active',\n event: 'UNFREEZE',\n effects: [],\n },\n ],\n },\n\n ticks: [\n {\n name: 'ApplyGravity',\n interval: 'frame',\n guard: ['and', ['=', '@state', 'Active'], ['not', '@entity.isGrounded']],\n effects: [\n ['set', '@entity.vy', ['math/min', '@config.maxVelocityY', ['+', '@entity.vy', '@config.gravity']]],\n ],\n },\n {\n name: 'ApplyVelocity',\n interval: 'frame',\n guard: ['=', '@state', 'Active'],\n effects: [\n ['set', '@entity.vx', ['*', '@entity.vx', '@config.airResistance']],\n ['set', '@entity.x', ['+', '@entity.x', '@entity.vx']],\n ['set', '@entity.y', ['+', '@entity.y', '@entity.vy']],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'gravity', type: 'number', description: 'Gravity acceleration (pixels/frame²)', default: 0.5 },\n { name: 'maxVelocityY', type: 'number', description: 'Terminal velocity', default: 15 },\n { name: 'friction', type: 'number', description: 'Ground friction (0-1)', default: 0.8 },\n { name: 'airResistance', type: 'number', description: 'Air resistance (0-1)', default: 0.99 },\n ],\n },\n};\n\n// ============================================================================\n// std/Input - Unified Input State\n// ============================================================================\n\n/**\n * std/Input - Manages keyboard and touch input state.\n *\n * Singleton behavior that tracks all input state.\n */\nexport const INPUT_BEHAVIOR: StandardBehavior = {\n name: 'std/Input',\n category: 'game-core',\n description: 'Unified keyboard and touch input state management',\n suggestedFor: [\n 'All interactive games',\n 'Player controls',\n 'Menu navigation',\n ],\n\n dataEntities: [\n {\n name: 'InputState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'left', type: 'boolean', default: false },\n { name: 'right', type: 'boolean', default: false },\n { name: 'up', type: 'boolean', default: false },\n { name: 'down', type: 'boolean', default: false },\n { name: 'jump', type: 'boolean', default: false },\n { name: 'action', type: 'boolean', default: false },\n { name: 'pause', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Ready',\n states: [\n { name: 'Ready', isInitial: true },\n ],\n events: [\n { key: 'KEY_DOWN' },\n { key: 'KEY_UP' },\n { key: 'TOUCH_START' },\n { key: 'TOUCH_END' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n event: 'KEY_DOWN',\n effects: [\n ['if', ['or', ['=', '@payload.key', 'ArrowLeft'], ['=', '@payload.key', 'a']],\n ['set', '@entity.left', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowRight'], ['=', '@payload.key', 'd']],\n ['set', '@entity.right', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowUp'], ['=', '@payload.key', 'w']],\n ['set', '@entity.up', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowDown'], ['=', '@payload.key', 's']],\n ['set', '@entity.down', true]],\n ['if', ['=', '@payload.key', ' '],\n ['set', '@entity.jump', true]],\n ['if', ['or', ['=', '@payload.key', 'Enter'], ['=', '@payload.key', 'e']],\n ['set', '@entity.action', true]],\n ['if', ['or', ['=', '@payload.key', 'Escape'], ['=', '@payload.key', 'p']],\n ['set', '@entity.pause', true]],\n ],\n },\n {\n event: 'KEY_UP',\n effects: [\n ['if', ['or', ['=', '@payload.key', 'ArrowLeft'], ['=', '@payload.key', 'a']],\n ['set', '@entity.left', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowRight'], ['=', '@payload.key', 'd']],\n ['set', '@entity.right', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowUp'], ['=', '@payload.key', 'w']],\n ['set', '@entity.up', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowDown'], ['=', '@payload.key', 's']],\n ['set', '@entity.down', false]],\n ['if', ['=', '@payload.key', ' '],\n ['set', '@entity.jump', false]],\n ['if', ['or', ['=', '@payload.key', 'Enter'], ['=', '@payload.key', 'e']],\n ['set', '@entity.action', false]],\n ['if', ['or', ['=', '@payload.key', 'Escape'], ['=', '@payload.key', 'p']],\n ['set', '@entity.pause', false]],\n ],\n },\n {\n event: 'RESET',\n effects: [\n ['set', '@entity.left', false],\n ['set', '@entity.right', false],\n ['set', '@entity.up', false],\n ['set', '@entity.down', false],\n ['set', '@entity.jump', false],\n ['set', '@entity.action', false],\n ['set', '@entity.pause', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'keyMap', type: 'object', description: 'Key to action mapping', default: {} },\n ],\n },\n};\n\n// ============================================================================\n// std/Collision - Collision Detection & Response\n// ============================================================================\n\n/**\n * std/Collision - Handles collision detection and response.\n *\n * Configures how an entity responds to collisions.\n */\nexport const COLLISION_BEHAVIOR: StandardBehavior = {\n name: 'std/Collision',\n category: 'game-core',\n description: 'Collision detection and response configuration',\n suggestedFor: [\n 'Solid platforms',\n 'Trigger zones',\n 'Collectibles',\n 'Hazards',\n ],\n\n dataEntities: [\n {\n name: 'CollisionState',\n runtime: true,\n fields: [\n { name: 'isColliding', type: 'boolean', default: false },\n { name: 'collidingWith', type: 'array', default: [] },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n { name: 'Disabled' },\n ],\n events: [\n { key: 'COLLISION' },\n { key: 'TRIGGER_ENTER' },\n { key: 'TRIGGER_EXIT' },\n { key: 'ENABLE' },\n { key: 'DISABLE' },\n ],\n transitions: [\n {\n from: 'Active',\n event: 'COLLISION',\n effects: [\n ['set', '@entity.isColliding', true],\n ['set', '@entity.collidingWith', ['array/append', '@entity.collidingWith', '@payload.entityId']],\n ['if', '@config.onCollision',\n ['emit', '@config.onCollision', { entityId: '@payload.entityId', side: '@payload.side' }]],\n ],\n },\n {\n from: 'Active',\n event: 'TRIGGER_ENTER',\n effects: [\n ['if', '@config.onTrigger',\n ['emit', '@config.onTrigger', { entityId: '@payload.entityId', action: 'enter' }]],\n ],\n },\n {\n from: 'Active',\n event: 'TRIGGER_EXIT',\n effects: [\n ['set', '@entity.collidingWith', ['array/filter', '@entity.collidingWith', ['fn', 'id', ['!=', '@id', '@payload.entityId']]]],\n ['if', ['=', ['array/len', '@entity.collidingWith'], 0],\n ['set', '@entity.isColliding', false]],\n ],\n },\n {\n from: 'Active',\n to: 'Disabled',\n event: 'DISABLE',\n effects: [\n ['set', '@entity.isColliding', false],\n ['set', '@entity.collidingWith', []],\n ],\n },\n {\n from: 'Disabled',\n to: 'Active',\n event: 'ENABLE',\n effects: [],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'type', type: 'string', description: 'Collision type', default: 'solid', enum: ['solid', 'trigger'] },\n { name: 'layer', type: 'string', description: 'Collision layer', default: 'default' },\n { name: 'collidesWith', type: 'array', description: 'Layers to collide with', default: ['default'] },\n { name: 'onCollision', type: 'event', description: 'Event to emit on collision' },\n { name: 'onTrigger', type: 'event', description: 'Event to emit on trigger' },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_CORE_BEHAVIORS: StandardBehavior[] = [\n GAME_LOOP_BEHAVIOR,\n PHYSICS_2D_BEHAVIOR,\n INPUT_BEHAVIOR,\n COLLISION_BEHAVIOR,\n];\n","/**\n * Game Entity Behaviors\n *\n * Entity state behaviors: health, score, movement, combat, inventory.\n * These use the Trait architecture with stateMachine and ticks.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Health - Entity Health System\n// ============================================================================\n\n/**\n * std/Health - Manages entity health with damage, healing, and death.\n *\n * States: Alive → Damaged → Dead\n */\nexport const HEALTH_BEHAVIOR: StandardBehavior = {\n name: 'std/Health',\n category: 'game-entity',\n description: 'Entity health with damage, healing, invulnerability, and death',\n suggestedFor: [\n 'Player characters',\n 'Enemies',\n 'Destructible objects',\n 'Bosses',\n ],\n\n dataEntities: [\n {\n name: 'HealthState',\n runtime: true,\n fields: [\n { name: 'currentHealth', type: 'number', default: 100 },\n { name: 'maxHealth', type: 'number', default: 100 },\n { name: 'isInvulnerable', type: 'boolean', default: false },\n { name: 'lastDamageTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Alive',\n states: [\n { name: 'Alive', isInitial: true },\n { name: 'Damaged' },\n { name: 'Invulnerable' },\n { name: 'Dead' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'DAMAGE' },\n { key: 'HEAL' },\n { key: 'DIE' },\n { key: 'RESPAWN' },\n { key: 'INVULNERABILITY_END' },\n ],\n transitions: [\n {\n from: '*',\n to: 'Alive',\n event: 'INIT',\n effects: [\n ['set', '@entity.currentHealth', '@config.maxHealth'],\n ['set', '@entity.maxHealth', '@config.maxHealth'],\n ['set', '@entity.isInvulnerable', false],\n ['render', 'hud.health', 'health-bar', {\n current: '@entity.currentHealth',\n max: '@entity.maxHealth',\n }],\n ],\n },\n {\n from: 'Alive',\n to: 'Damaged',\n event: 'DAMAGE',\n guard: ['not', '@entity.isInvulnerable'],\n effects: [\n ['set', '@entity.currentHealth', ['math/max', 0, ['-', '@entity.currentHealth', '@payload.amount']]],\n ['set', '@entity.lastDamageTime', '@now'],\n ['if', ['<=', '@entity.currentHealth', 0],\n ['emit', 'DIE'],\n ['do',\n ['set', '@entity.isInvulnerable', true],\n ['render', 'entity.flash', 'damage-flash', {}]]],\n ],\n },\n {\n from: ['Damaged', 'Invulnerable'],\n to: 'Alive',\n event: 'INVULNERABILITY_END',\n effects: [\n ['set', '@entity.isInvulnerable', false],\n ],\n },\n {\n from: ['Alive', 'Damaged', 'Invulnerable'],\n event: 'HEAL',\n effects: [\n ['set', '@entity.currentHealth', ['math/min', '@entity.maxHealth', ['+', '@entity.currentHealth', '@payload.amount']]],\n ['render', 'entity.effect', 'heal-effect', {}],\n ],\n },\n {\n from: ['Alive', 'Damaged', 'Invulnerable'],\n to: 'Dead',\n event: 'DIE',\n effects: [\n ['set', '@entity.currentHealth', 0],\n ['emit', '@config.onDeath', { entityId: '@entity.id' }],\n ['render', 'entity.sprite', 'death-animation', {}],\n ],\n },\n {\n from: 'Dead',\n to: 'Alive',\n event: 'RESPAWN',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'InvulnerabilityTimer',\n interval: 'frame',\n guard: ['and', '@entity.isInvulnerable', ['>', ['-', '@now', '@entity.lastDamageTime'], '@config.invulnerabilityTime']],\n effects: [\n ['emit', 'INVULNERABILITY_END'],\n ],\n },\n ],\n\n configSchema: {\n required: [\n { name: 'maxHealth', type: 'number', description: 'Maximum health points' },\n ],\n optional: [\n { name: 'invulnerabilityTime', type: 'number', description: 'Invulnerability duration after damage (ms)', default: 500 },\n { name: 'onDeath', type: 'event', description: 'Event to emit on death', default: 'ENTITY_DIED' },\n { name: 'showHealthBar', type: 'boolean', description: 'Render health bar', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Score - Points and Combo System\n// ============================================================================\n\n/**\n * std/Score - Manages score with points, combos, and multipliers.\n */\nexport const SCORE_BEHAVIOR: StandardBehavior = {\n name: 'std/Score',\n category: 'game-entity',\n description: 'Score tracking with points, combos, and multipliers',\n suggestedFor: [\n 'Arcade games',\n 'Puzzle games',\n 'Platformers with collectibles',\n 'Competitive games',\n ],\n\n dataEntities: [\n {\n name: 'ScoreState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'currentScore', type: 'number', default: 0 },\n { name: 'highScore', type: 'number', default: 0 },\n { name: 'comboCount', type: 'number', default: 0 },\n { name: 'multiplier', type: 'number', default: 1 },\n { name: 'lastScoreTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'ADD_POINTS' },\n { key: 'COMBO_HIT' },\n { key: 'COMBO_BREAK' },\n { key: 'RESET' },\n { key: 'SAVE_HIGH_SCORE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.currentScore', 0],\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n ['render', 'hud.score', 'score-display', {\n score: '@entity.currentScore',\n highScore: '@entity.highScore',\n combo: '@entity.comboCount',\n multiplier: '@entity.multiplier',\n }],\n ],\n },\n {\n event: 'ADD_POINTS',\n effects: [\n ['set', '@entity.currentScore', ['+', '@entity.currentScore', ['*', '@payload.points', '@entity.multiplier']]],\n ['set', '@entity.lastScoreTime', '@now'],\n ['render', 'entity.effect', 'score-popup', {\n points: ['*', '@payload.points', '@entity.multiplier'],\n position: '@payload.position',\n }],\n ],\n },\n {\n event: 'COMBO_HIT',\n effects: [\n ['set', '@entity.comboCount', ['+', '@entity.comboCount', 1]],\n ['set', '@entity.multiplier', ['math/min', '@config.maxMultiplier', ['+', 1, ['/', '@entity.comboCount', 5]]]],\n ['set', '@entity.lastScoreTime', '@now'],\n ],\n },\n {\n event: 'COMBO_BREAK',\n effects: [\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n ],\n },\n {\n event: 'RESET',\n effects: [\n ['if', ['>', '@entity.currentScore', '@entity.highScore'],\n ['set', '@entity.highScore', '@entity.currentScore']],\n ['emit', 'INIT'],\n ],\n },\n {\n event: 'SAVE_HIGH_SCORE',\n guard: ['>', '@entity.currentScore', '@entity.highScore'],\n effects: [\n ['set', '@entity.highScore', '@entity.currentScore'],\n ['persist', 'save', 'HighScore', { score: '@entity.highScore' }],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'ComboTimeout',\n interval: 'frame',\n guard: ['and', ['>', '@entity.comboCount', 0], ['>', ['-', '@now', '@entity.lastScoreTime'], '@config.comboTimeWindow']],\n effects: [\n ['emit', 'COMBO_BREAK'],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'comboTimeWindow', type: 'number', description: 'Time window for combos (ms)', default: 2000 },\n { name: 'maxMultiplier', type: 'number', description: 'Maximum combo multiplier', default: 10 },\n { name: 'persistHighScore', type: 'boolean', description: 'Save high score to storage', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Movement - Entity Position and Velocity\n// ============================================================================\n\n/**\n * std/Movement - Basic movement for any entity.\n *\n * Handles position updates based on input or AI.\n */\nexport const MOVEMENT_BEHAVIOR: StandardBehavior = {\n name: 'std/Movement',\n category: 'game-entity',\n description: 'Entity movement with speed and direction',\n suggestedFor: [\n 'Player characters',\n 'NPCs',\n 'Enemies',\n 'Moving platforms',\n ],\n\n requiredFields: [\n { name: 'x', type: 'number', description: 'Entity X position' },\n { name: 'y', type: 'number', description: 'Entity Y position' },\n ],\n\n dataEntities: [\n {\n name: 'MovementState',\n runtime: true,\n fields: [\n { name: 'direction', type: 'number', default: 0 },\n { name: 'facingRight', type: 'boolean', default: true },\n { name: 'canJump', type: 'boolean', default: true },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Moving' },\n { name: 'Jumping' },\n { name: 'Falling' },\n ],\n events: [\n { key: 'MOVE' },\n { key: 'STOP' },\n { key: 'JUMP' },\n { key: 'LAND' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Moving',\n event: 'MOVE',\n effects: [\n ['set', '@entity.direction', '@payload.direction'],\n ['if', ['>', '@payload.direction', 0],\n ['set', '@entity.facingRight', true]],\n ['if', ['<', '@payload.direction', 0],\n ['set', '@entity.facingRight', false]],\n ],\n },\n {\n from: 'Moving',\n event: 'MOVE',\n effects: [\n ['set', '@entity.direction', '@payload.direction'],\n ['if', ['>', '@payload.direction', 0],\n ['set', '@entity.facingRight', true]],\n ['if', ['<', '@payload.direction', 0],\n ['set', '@entity.facingRight', false]],\n ],\n },\n {\n from: 'Moving',\n to: 'Idle',\n event: 'STOP',\n effects: [\n ['set', '@entity.direction', 0],\n ],\n },\n {\n from: ['Idle', 'Moving'],\n to: 'Jumping',\n event: 'JUMP',\n guard: '@entity.canJump',\n effects: [\n ['set', '@entity.canJump', false],\n ['emit', 'APPLY_FORCE', { fx: 0, fy: '@config.jumpForce' }],\n ],\n },\n {\n from: ['Jumping', 'Falling'],\n to: 'Idle',\n event: 'LAND',\n effects: [\n ['set', '@entity.canJump', true],\n ['if', ['!=', '@entity.direction', 0],\n ['emit', 'MOVE', { direction: '@entity.direction' }]],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'ApplyMovement',\n interval: 'frame',\n guard: ['!=', '@entity.direction', 0],\n effects: [\n ['set', '@entity.x', ['+', '@entity.x', ['*', '@entity.direction', '@config.moveSpeed']]],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'moveSpeed', type: 'number', description: 'Movement speed (pixels/frame)', default: 5 },\n { name: 'jumpForce', type: 'number', description: 'Jump velocity', default: -12 },\n { name: 'acceleration', type: 'number', description: 'Acceleration rate', default: 0.5 },\n { name: 'deceleration', type: 'number', description: 'Deceleration rate', default: 0.3 },\n ],\n },\n};\n\n// ============================================================================\n// std/Combat - Attack and Damage System\n// ============================================================================\n\n/**\n * std/Combat - Handles attacks, cooldowns, and hit detection.\n */\nexport const COMBAT_BEHAVIOR: StandardBehavior = {\n name: 'std/Combat',\n category: 'game-entity',\n description: 'Combat system with attacks, cooldowns, and hitboxes',\n suggestedFor: [\n 'Fighting games',\n 'Action RPGs',\n 'Beat-em-ups',\n 'Boss encounters',\n ],\n\n dataEntities: [\n {\n name: 'CombatState',\n runtime: true,\n fields: [\n { name: 'isAttacking', type: 'boolean', default: false },\n { name: 'attackStartTime', type: 'number', default: 0 },\n { name: 'hitEntities', type: 'array', default: [] },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Ready',\n states: [\n { name: 'Ready', isInitial: true },\n { name: 'Attacking' },\n { name: 'Cooldown' },\n ],\n events: [\n { key: 'ATTACK' },\n { key: 'ATTACK_END' },\n { key: 'HIT_CONNECT' },\n { key: 'COOLDOWN_END' },\n ],\n transitions: [\n {\n from: 'Ready',\n to: 'Attacking',\n event: 'ATTACK',\n effects: [\n ['set', '@entity.isAttacking', true],\n ['set', '@entity.attackStartTime', '@now'],\n ['set', '@entity.hitEntities', []],\n ['render', 'entity.sprite', 'attack-animation', {}],\n ['render', 'entity.hitbox', 'hitbox', {\n active: true,\n offset: '@config.hitboxOffset',\n size: '@config.hitboxSize',\n }],\n ],\n },\n {\n from: 'Attacking',\n event: 'HIT_CONNECT',\n guard: ['not', ['array/includes', '@entity.hitEntities', '@payload.entityId']],\n effects: [\n ['set', '@entity.hitEntities', ['array/append', '@entity.hitEntities', '@payload.entityId']],\n ['emit', 'DAMAGE', { target: '@payload.entityId', amount: '@config.attackDamage' }],\n ['render', 'effect.impact', 'hit-effect', { position: '@payload.position' }],\n ],\n },\n {\n from: 'Attacking',\n to: 'Cooldown',\n event: 'ATTACK_END',\n effects: [\n ['set', '@entity.isAttacking', false],\n ['render', 'entity.hitbox', null],\n ],\n },\n {\n from: 'Cooldown',\n to: 'Ready',\n event: 'COOLDOWN_END',\n effects: [],\n },\n ],\n },\n\n ticks: [\n {\n name: 'AttackDuration',\n interval: 'frame',\n guard: ['and', '@entity.isAttacking', ['>', ['-', '@now', '@entity.attackStartTime'], '@config.attackDuration']],\n effects: [\n ['emit', 'ATTACK_END'],\n ],\n },\n {\n name: 'CooldownTimer',\n interval: 'frame',\n guard: ['and', ['=', '@state', 'Cooldown'], ['>', ['-', '@now', '@entity.attackStartTime'], ['+', '@config.attackDuration', '@config.cooldownDuration']]],\n effects: [\n ['emit', 'COOLDOWN_END'],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'attackDamage', type: 'number', description: 'Damage per attack', default: 10 },\n { name: 'attackDuration', type: 'number', description: 'Attack animation duration (ms)', default: 200 },\n { name: 'cooldownDuration', type: 'number', description: 'Cooldown between attacks (ms)', default: 300 },\n { name: 'hitboxOffset', type: 'object', description: 'Hitbox offset from entity', default: { x: 20, y: 0 } },\n { name: 'hitboxSize', type: 'object', description: 'Hitbox dimensions', default: { width: 30, height: 40 } },\n ],\n },\n};\n\n// ============================================================================\n// std/Inventory - Item Collection and Management\n// ============================================================================\n\n/**\n * std/Inventory - Manages collected items and equipment.\n */\nexport const INVENTORY_BEHAVIOR: StandardBehavior = {\n name: 'std/Inventory',\n category: 'game-entity',\n description: 'Item collection, storage, and usage',\n suggestedFor: [\n 'RPGs',\n 'Adventure games',\n 'Survival games',\n 'Collectible-based games',\n ],\n\n dataEntities: [\n {\n name: 'InventoryState',\n runtime: true,\n fields: [\n { name: 'items', type: 'array', default: [] },\n { name: 'selectedSlot', type: 'number', default: 0 },\n { name: 'isOpen', type: 'boolean', default: false },\n { name: 'equipped', type: 'object', default: {} },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Empty',\n states: [\n { name: 'Empty', isInitial: true },\n { name: 'HasItems' },\n { name: 'Full' },\n ],\n events: [\n { key: 'COLLECT' },\n { key: 'USE' },\n { key: 'DROP' },\n { key: 'EQUIP' },\n { key: 'UNEQUIP' },\n { key: 'OPEN' },\n { key: 'CLOSE' },\n { key: 'INVENTORY_EMPTY' },\n ],\n transitions: [\n {\n from: ['Empty', 'HasItems'],\n to: 'HasItems',\n event: 'COLLECT',\n guard: ['<', ['array/len', '@entity.items'], '@config.maxSlots'],\n effects: [\n ['set', '@entity.items', ['array/append', '@entity.items', '@payload.item']],\n ['render', 'effect.collect', 'collect-effect', { item: '@payload.item' }],\n ['notify', { type: 'info', message: ['str/concat', 'Collected ', '@payload.item.name'] }],\n ],\n },\n {\n from: 'HasItems',\n event: 'USE',\n effects: [\n ['let', [['item', ['array/nth', '@entity.items', '@payload.slot']]],\n ['if', '@item.onUse',\n ['emit', '@item.onUse', { item: '@item' }]],\n ['if', '@item.consumable',\n ['set', '@entity.items', ['array/filter', '@entity.items', ['fn', 'i', 'idx', ['!=', '@idx', '@payload.slot']]]]]],\n ['if', ['=', ['array/len', '@entity.items'], 0],\n ['emit', 'INVENTORY_EMPTY']],\n ],\n },\n {\n from: 'HasItems',\n event: 'DROP',\n effects: [\n ['let', [['item', ['array/nth', '@entity.items', '@payload.slot']]],\n ['set', '@entity.items', ['array/filter', '@entity.items', ['fn', 'i', 'idx', ['!=', '@idx', '@payload.slot']]]],\n ['emit', 'ITEM_DROPPED', { item: '@item', position: { x: '@entity.x', y: '@entity.y' } }]],\n ['if', ['=', ['array/len', '@entity.items'], 0],\n ['emit', 'INVENTORY_EMPTY']],\n ],\n },\n {\n from: 'HasItems',\n to: 'Empty',\n event: 'INVENTORY_EMPTY',\n effects: [],\n },\n {\n event: 'EQUIP',\n effects: [\n ['set', '@entity.equipped', ['object/set', '@entity.equipped', '@payload.slot', '@payload.item']],\n ['emit', 'STATS_UPDATED', { equipped: '@entity.equipped' }],\n ],\n },\n {\n event: 'UNEQUIP',\n effects: [\n ['set', '@entity.equipped', ['object/remove', '@entity.equipped', '@payload.slot']],\n ['emit', 'STATS_UPDATED', { equipped: '@entity.equipped' }],\n ],\n },\n {\n event: 'OPEN',\n effects: [\n ['set', '@entity.isOpen', true],\n ['render', 'overlay.inventory', 'inventory-panel', {\n items: '@entity.items',\n selectedSlot: '@entity.selectedSlot',\n equipped: '@entity.equipped',\n maxSlots: '@config.maxSlots',\n onUse: 'USE',\n onDrop: 'DROP',\n onEquip: 'EQUIP',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n event: 'CLOSE',\n effects: [\n ['set', '@entity.isOpen', false],\n ['render', 'overlay.inventory', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'maxSlots', type: 'number', description: 'Maximum inventory slots', default: 20 },\n { name: 'stackable', type: 'boolean', description: 'Allow item stacking', default: true },\n { name: 'maxStack', type: 'number', description: 'Maximum stack size', default: 99 },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_ENTITY_BEHAVIORS: StandardBehavior[] = [\n HEALTH_BEHAVIOR,\n SCORE_BEHAVIOR,\n MOVEMENT_BEHAVIOR,\n COMBAT_BEHAVIOR,\n INVENTORY_BEHAVIOR,\n];\n","/**\n * Game UI Behaviors\n *\n * Game interface behaviors: flow, dialogue, level progression.\n * These use the Trait architecture with stateMachine and ticks.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/GameFlow - Game State Machine\n// ============================================================================\n\n/**\n * std/GameFlow - Master game state management.\n *\n * States: Menu → Playing → Paused → GameOver/Victory\n */\nexport const GAME_FLOW_BEHAVIOR: StandardBehavior = {\n name: 'std/GameFlow',\n category: 'game-ui',\n description: 'Master game flow: menu, play, pause, game over, victory',\n suggestedFor: [\n 'All games',\n 'Game state management',\n 'Menu systems',\n 'Win/lose conditions',\n ],\n\n dataEntities: [\n {\n name: 'GameFlowState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'playTime', type: 'number', default: 0 },\n { name: 'attempts', type: 'number', default: 0 },\n { name: 'lastState', type: 'string', default: 'Menu' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Menu',\n states: [\n { name: 'Menu', isInitial: true },\n { name: 'Playing' },\n { name: 'Paused' },\n { name: 'GameOver' },\n { name: 'Victory' },\n ],\n events: [\n { key: 'START' },\n { key: 'PAUSE' },\n { key: 'RESUME' },\n { key: 'GAME_OVER' },\n { key: 'VICTORY' },\n { key: 'RESTART' },\n { key: 'QUIT' },\n ],\n transitions: [\n {\n from: '*',\n to: 'Menu',\n event: 'QUIT',\n effects: [\n ['emit', 'STOP'],\n ['render', 'screen', 'game-menu', {\n title: '@config.title',\n onStart: 'START',\n }],\n ],\n },\n {\n from: 'Menu',\n to: 'Playing',\n event: 'START',\n effects: [\n ['set', '@entity.attempts', ['+', '@entity.attempts', 1]],\n ['set', '@entity.playTime', 0],\n ['emit', 'GAME_LOOP_START'],\n ['render', 'screen', null],\n ['render', 'canvas', 'game-canvas', {}],\n ],\n },\n {\n from: 'Playing',\n to: 'Paused',\n event: 'PAUSE',\n guard: '@config.allowPause',\n effects: [\n ['set', '@entity.lastState', 'Playing'],\n ['emit', 'GAME_LOOP_PAUSE'],\n ['render', 'overlay', 'game-pause-overlay', {\n onResume: 'RESUME',\n onQuit: 'QUIT',\n playTime: '@entity.playTime',\n }],\n ],\n },\n {\n from: 'Paused',\n to: 'Playing',\n event: 'RESUME',\n effects: [\n ['emit', 'GAME_LOOP_RESUME'],\n ['render', 'overlay', null],\n ],\n },\n {\n from: 'Playing',\n to: 'GameOver',\n event: 'GAME_OVER',\n effects: [\n ['emit', 'STOP'],\n ['render', 'overlay', 'game-over-screen', {\n victory: false,\n playTime: '@entity.playTime',\n attempts: '@entity.attempts',\n onRestart: 'RESTART',\n onQuit: 'QUIT',\n }],\n ],\n },\n {\n from: 'Playing',\n to: 'Victory',\n event: 'VICTORY',\n effects: [\n ['emit', 'STOP'],\n ['render', 'overlay', 'game-over-screen', {\n victory: true,\n playTime: '@entity.playTime',\n attempts: '@entity.attempts',\n onRestart: 'RESTART',\n onQuit: 'QUIT',\n }],\n ],\n },\n {\n from: ['GameOver', 'Victory'],\n to: 'Playing',\n event: 'RESTART',\n effects: [\n ['render', 'overlay', null],\n ['emit', 'GAME_RESET'],\n ['emit', 'START'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'title', type: 'string', description: 'Game title', default: 'Game' },\n { name: 'showMenu', type: 'boolean', description: 'Show main menu', default: true },\n { name: 'allowPause', type: 'boolean', description: 'Allow pausing', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Dialogue - NPC Conversation System\n// ============================================================================\n\n/**\n * std/Dialogue - Manages NPC dialogue and branching conversations.\n */\nexport const DIALOGUE_BEHAVIOR: StandardBehavior = {\n name: 'std/Dialogue',\n category: 'game-ui',\n description: 'NPC dialogue system with branching conversations',\n suggestedFor: [\n 'RPGs',\n 'Adventure games',\n 'Story-driven games',\n 'NPC interactions',\n ],\n\n dataEntities: [\n {\n name: 'DialogueState',\n runtime: true,\n fields: [\n { name: 'dialogueTree', type: 'array', default: [] },\n { name: 'currentNode', type: 'number', default: 0 },\n { name: 'displayedText', type: 'string', default: '' },\n { name: 'isTyping', type: 'boolean', default: false },\n { name: 'speaker', type: 'string', default: '' },\n { name: 'typeIndex', type: 'number', default: 0 },\n { name: 'lastTypeTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Hidden',\n states: [\n { name: 'Hidden', isInitial: true },\n { name: 'Typing' },\n { name: 'Showing' },\n { name: 'Choice' },\n ],\n events: [\n { key: 'SHOW' },\n { key: 'NEXT' },\n { key: 'SELECT_CHOICE' },\n { key: 'SKIP' },\n { key: 'CLOSE' },\n { key: 'TYPE_CHAR' },\n { key: 'TYPE_COMPLETE' },\n ],\n transitions: [\n {\n from: 'Hidden',\n to: 'Typing',\n event: 'SHOW',\n effects: [\n ['set', '@entity.dialogueTree', '@payload.dialogue'],\n ['set', '@entity.currentNode', 0],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0],\n ['set', '@entity.lastTypeTime', '@now'],\n ['emit', 'GAME_PAUSE'],\n ['render', 'overlay.dialogue', 'dialogue-box', {\n speaker: '@entity.speaker',\n text: '@entity.displayedText',\n isTyping: '@entity.isTyping',\n onNext: 'NEXT',\n onSkip: 'SKIP',\n }],\n ],\n },\n {\n from: 'Typing',\n event: 'TYPE_CHAR',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['do',\n ['set', '@entity.typeIndex', ['+', '@entity.typeIndex', 1]],\n ['set', '@entity.displayedText', ['str/slice', '@currentDialogue.text', 0, '@entity.typeIndex']],\n ['set', '@entity.lastTypeTime', '@now']]],\n ],\n },\n {\n from: 'Typing',\n to: 'Showing',\n event: 'TYPE_COMPLETE',\n effects: [\n ['set', '@entity.isTyping', false],\n ],\n },\n {\n from: 'Typing',\n to: 'Showing',\n event: 'SKIP',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['do',\n ['set', '@entity.isTyping', false],\n ['set', '@entity.displayedText', '@currentDialogue.text']]],\n ],\n },\n {\n from: 'Showing',\n event: 'NEXT',\n guard: ['not', ['object/get', ['array/nth', '@entity.dialogueTree', '@entity.currentNode'], 'choices']],\n effects: [\n ['if', ['>=', '@entity.currentNode', ['-', ['array/len', '@entity.dialogueTree'], 1]],\n ['emit', 'CLOSE'],\n ['do',\n ['set', '@entity.currentNode', ['+', '@entity.currentNode', 1]],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0]]],\n ],\n },\n {\n from: 'Showing',\n to: 'Choice',\n event: 'NEXT',\n guard: ['object/get', ['array/nth', '@entity.dialogueTree', '@entity.currentNode'], 'choices'],\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['render', 'overlay.dialogue', 'dialogue-box', {\n choices: '@currentDialogue.choices',\n onSelect: 'SELECT_CHOICE',\n }]],\n ],\n },\n {\n from: 'Choice',\n to: 'Typing',\n event: 'SELECT_CHOICE',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['let', [['choice', ['array/nth', '@currentDialogue.choices', '@payload.index']]],\n ['do',\n ['if', '@choice.nextNode',\n ['set', '@entity.currentNode', '@choice.nextNode'],\n ['set', '@entity.currentNode', ['+', '@entity.currentNode', 1]]],\n ['if', '@choice.effect',\n ['emit', '@choice.effect']]]]],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0],\n ],\n },\n {\n from: ['Typing', 'Showing', 'Choice'],\n to: 'Hidden',\n event: 'CLOSE',\n effects: [\n ['set', '@entity.dialogueTree', []],\n ['set', '@entity.currentNode', 0],\n ['emit', 'GAME_RESUME'],\n ['render', 'overlay.dialogue', null],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'TypewriterEffect',\n interval: 'frame',\n guard: ['and', '@entity.isTyping', ['>', ['-', '@now', '@entity.lastTypeTime'], ['/', 1000, '@config.typingSpeed']]],\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['if', ['<', '@entity.typeIndex', ['str/len', '@currentDialogue.text']],\n ['emit', 'TYPE_CHAR'],\n ['emit', 'TYPE_COMPLETE']]],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'typingSpeed', type: 'number', description: 'Characters per second', default: 30 },\n { name: 'autoAdvance', type: 'boolean', description: 'Auto-advance after typing', default: false },\n { name: 'autoAdvanceDelay', type: 'number', description: 'Delay before auto-advance (ms)', default: 2000 },\n { name: 'showPortrait', type: 'boolean', description: 'Show speaker portrait', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/LevelProgress - Level Unlock and Progression\n// ============================================================================\n\n/**\n * std/LevelProgress - Manages level unlock, selection, and completion.\n */\nexport const LEVEL_PROGRESS_BEHAVIOR: StandardBehavior = {\n name: 'std/LevelProgress',\n category: 'game-ui',\n description: 'Level progression with unlock, selection, and completion tracking',\n suggestedFor: [\n 'Level-based games',\n 'Puzzle games',\n 'Platformers with levels',\n 'Mobile games',\n ],\n\n dataEntities: [\n {\n name: 'LevelProgressState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'currentLevel', type: 'number', default: 0 },\n { name: 'unlockedLevels', type: 'array', default: [0] },\n { name: 'levelStars', type: 'object', default: {} },\n { name: 'totalStars', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Browsing',\n states: [\n { name: 'Browsing', isInitial: true },\n { name: 'LevelLoading' },\n { name: 'InLevel' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT_LEVEL' },\n { key: 'LEVEL_LOADED' },\n { key: 'COMPLETE_LEVEL' },\n { key: 'UNLOCK_LEVEL' },\n { key: 'BACK_TO_SELECT' },\n ],\n transitions: [\n {\n from: '*',\n to: 'Browsing',\n event: 'INIT',\n effects: [\n ['render', 'screen', 'level-select', {\n levels: '@config.levels',\n unlockedLevels: '@entity.unlockedLevels',\n levelStars: '@entity.levelStars',\n starsPerLevel: '@config.starsPerLevel',\n totalStars: '@entity.totalStars',\n onSelect: 'SELECT_LEVEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'LevelLoading',\n event: 'SELECT_LEVEL',\n guard: ['array/includes', '@entity.unlockedLevels', '@payload.levelIndex'],\n effects: [\n ['set', '@entity.currentLevel', '@payload.levelIndex'],\n ['render', 'screen', 'loading-screen', {\n level: ['array/nth', '@config.levels', '@payload.levelIndex'],\n }],\n ['emit', 'LOAD_LEVEL', { levelData: ['array/nth', '@config.levels', '@payload.levelIndex'] }],\n ],\n },\n {\n from: 'LevelLoading',\n to: 'InLevel',\n event: 'LEVEL_LOADED',\n effects: [\n ['render', 'screen', null],\n ['emit', 'START'],\n ],\n },\n {\n from: 'InLevel',\n event: 'COMPLETE_LEVEL',\n effects: [\n ['set', '@entity.levelStars', ['object/set', '@entity.levelStars', ['str/toString', '@entity.currentLevel'],\n ['math/max', '@payload.stars', ['object/get', '@entity.levelStars', ['str/toString', '@entity.currentLevel'], 0]]]],\n ['set', '@entity.totalStars', ['array/reduce', ['object/values', '@entity.levelStars'], ['fn', 'sum', 'v', ['+', '@sum', '@v']], 0]],\n ['if', ['and', '@config.unlockNext', ['<', '@entity.currentLevel', ['-', ['array/len', '@config.levels'], 1]]],\n ['emit', 'UNLOCK_LEVEL', { levelIndex: ['+', '@entity.currentLevel', 1] }]],\n ['if', '@config.persistProgress',\n ['persist', 'save', 'LevelProgress', {\n unlockedLevels: '@entity.unlockedLevels',\n levelStars: '@entity.levelStars',\n }]],\n ],\n },\n {\n event: 'UNLOCK_LEVEL',\n guard: ['not', ['array/includes', '@entity.unlockedLevels', '@payload.levelIndex']],\n effects: [\n ['set', '@entity.unlockedLevels', ['array/append', '@entity.unlockedLevels', '@payload.levelIndex']],\n ],\n },\n {\n from: 'InLevel',\n to: 'Browsing',\n event: 'BACK_TO_SELECT',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'levels', type: 'array', description: 'Level definitions' },\n ],\n optional: [\n { name: 'starsPerLevel', type: 'number', description: 'Max stars per level', default: 3 },\n { name: 'unlockNext', type: 'boolean', description: 'Auto-unlock next level on complete', default: true },\n { name: 'persistProgress', type: 'boolean', description: 'Save progress to storage', default: true },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_UI_BEHAVIORS: StandardBehavior[] = [\n GAME_FLOW_BEHAVIOR,\n DIALOGUE_BEHAVIOR,\n LEVEL_PROGRESS_BEHAVIOR,\n];\n","/**\n * Standard Behaviors Registry\n *\n * Combined registry of all Standard Behaviors with lookup functions.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior, BehaviorMetadata, BehaviorCategory } from './types.js';\nimport { getBehaviorMetadata } from './types.js';\nimport { UI_INTERACTION_BEHAVIORS } from './ui-interaction.js';\nimport { DATA_MANAGEMENT_BEHAVIORS } from './data-management.js';\nimport { ASYNC_BEHAVIORS } from './async.js';\nimport { FEEDBACK_BEHAVIORS } from './feedback.js';\nimport { GAME_CORE_BEHAVIORS } from './game-core.js';\nimport { GAME_ENTITY_BEHAVIORS } from './game-entity.js';\nimport { GAME_UI_BEHAVIORS } from './game-ui.js';\n\n// ============================================================================\n// Combined Registry\n// ============================================================================\n\n/**\n * All Standard Behaviors combined into a single array.\n */\nexport const STANDARD_BEHAVIORS: StandardBehavior[] = [\n ...UI_INTERACTION_BEHAVIORS,\n ...DATA_MANAGEMENT_BEHAVIORS,\n ...ASYNC_BEHAVIORS,\n ...FEEDBACK_BEHAVIORS,\n ...GAME_CORE_BEHAVIORS,\n ...GAME_ENTITY_BEHAVIORS,\n ...GAME_UI_BEHAVIORS,\n];\n\n/**\n * Behavior registry indexed by name for fast lookup.\n */\nexport const BEHAVIOR_REGISTRY: Record<string, StandardBehavior> = STANDARD_BEHAVIORS.reduce(\n (acc, behavior) => {\n acc[behavior.name] = behavior;\n return acc;\n },\n {} as Record<string, StandardBehavior>\n);\n\n/**\n * Behaviors grouped by category.\n */\nexport const BEHAVIORS_BY_CATEGORY: Record<BehaviorCategory, StandardBehavior[]> = {\n 'ui-interaction': UI_INTERACTION_BEHAVIORS,\n 'data-management': DATA_MANAGEMENT_BEHAVIORS,\n 'async': ASYNC_BEHAVIORS,\n 'feedback': FEEDBACK_BEHAVIORS,\n 'game-core': GAME_CORE_BEHAVIORS,\n 'game-entity': GAME_ENTITY_BEHAVIORS,\n 'game-ui': GAME_UI_BEHAVIORS,\n};\n\n// ============================================================================\n// Lookup Functions\n// ============================================================================\n\n/**\n * Get a behavior by name.\n *\n * @param name - Behavior name (e.g., 'std/List')\n * @returns The behavior or undefined if not found\n */\nexport function getBehavior(name: string): StandardBehavior | undefined {\n return BEHAVIOR_REGISTRY[name];\n}\n\n/**\n * Check if a behavior exists.\n *\n * @param name - Behavior name\n * @returns true if the behavior exists\n */\nexport function isKnownBehavior(name: string): boolean {\n return name in BEHAVIOR_REGISTRY;\n}\n\n/**\n * Get all behaviors in a category.\n *\n * @param category - Behavior category\n * @returns Array of behaviors in that category\n */\nexport function getBehaviorsByCategory(category: BehaviorCategory): StandardBehavior[] {\n return BEHAVIORS_BY_CATEGORY[category] ?? [];\n}\n\n/**\n * Get all behavior names.\n *\n * @returns Array of all behavior names\n */\nexport function getAllBehaviorNames(): string[] {\n return Object.keys(BEHAVIOR_REGISTRY);\n}\n\n/**\n * Get all behaviors.\n *\n * @returns Array of all behaviors\n */\nexport function getAllBehaviors(): StandardBehavior[] {\n return STANDARD_BEHAVIORS;\n}\n\n/**\n * Get metadata for all behaviors (lightweight).\n *\n * @returns Array of behavior metadata\n */\nexport function getAllBehaviorMetadata(): BehaviorMetadata[] {\n return STANDARD_BEHAVIORS.map(getBehaviorMetadata);\n}\n\n/**\n * Find behaviors that match a use case.\n *\n * @param useCase - Use case description to match\n * @returns Array of matching behaviors\n */\nexport function findBehaviorsForUseCase(useCase: string): StandardBehavior[] {\n const lowerUseCase = useCase.toLowerCase();\n return STANDARD_BEHAVIORS.filter((behavior) =>\n behavior.suggestedFor?.some((suggestion) =>\n suggestion.toLowerCase().includes(lowerUseCase) ||\n lowerUseCase.includes(suggestion.toLowerCase())\n ) ?? false\n );\n}\n\n/**\n * Get behaviors that handle a specific event.\n *\n * @param event - Event name\n * @returns Array of behaviors that handle this event\n */\nexport function getBehaviorsForEvent(event: string): StandardBehavior[] {\n return STANDARD_BEHAVIORS.filter((behavior) => {\n const events = behavior.stateMachine?.events || [];\n return events.some(e => (typeof e === 'string' ? e : e.key) === event);\n });\n}\n\n/**\n * Get behaviors that have a specific state.\n *\n * @param state - State name\n * @returns Array of behaviors that have this state\n */\nexport function getBehaviorsWithState(state: string): StandardBehavior[] {\n return STANDARD_BEHAVIORS.filter((behavior) => {\n const states = behavior.stateMachine?.states || [];\n return states.some(s => (typeof s === 'string' ? s : s.name) === state);\n });\n}\n\n// ============================================================================\n// Validation Functions\n// ============================================================================\n\n/**\n * Validate that a behavior reference is valid.\n *\n * @param name - Behavior name\n * @returns Error message if invalid, null if valid\n */\nexport function validateBehaviorReference(name: string): string | null {\n if (!name.startsWith('std/')) {\n return `Behavior name must start with 'std/': ${name}`;\n }\n\n if (!isKnownBehavior(name)) {\n const suggestions = findSimilarBehaviors(name);\n if (suggestions.length > 0) {\n return `Unknown behavior '${name}'. Did you mean: ${suggestions.join(', ')}?`;\n }\n return `Unknown behavior: ${name}`;\n }\n\n return null;\n}\n\n/**\n * Find behaviors with similar names (for suggestions).\n *\n * @param name - Input name\n * @returns Array of similar behavior names\n */\nfunction findSimilarBehaviors(name: string): string[] {\n const normalizedInput = name.toLowerCase().replace('std/', '');\n return getAllBehaviorNames().filter((behaviorName) => {\n const normalizedBehavior = behaviorName.toLowerCase().replace('std/', '');\n return (\n normalizedBehavior.includes(normalizedInput) ||\n normalizedInput.includes(normalizedBehavior) ||\n levenshteinDistance(normalizedInput, normalizedBehavior) <= 3\n );\n });\n}\n\n/**\n * Simple Levenshtein distance for string similarity.\n */\nfunction levenshteinDistance(a: string, b: string): number {\n if (a.length === 0) return b.length;\n if (b.length === 0) return a.length;\n\n const matrix: number[][] = [];\n\n for (let i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n\n for (let j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n\n for (let i = 1; i <= b.length; i++) {\n for (let j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(\n matrix[i - 1][j - 1] + 1,\n matrix[i][j - 1] + 1,\n matrix[i - 1][j] + 1\n );\n }\n }\n }\n\n return matrix[b.length][a.length];\n}\n\n// ============================================================================\n// Statistics\n// ============================================================================\n\n/**\n * Get statistics about the behavior library.\n */\nexport function getBehaviorLibraryStats(): {\n totalBehaviors: number;\n byCategory: Record<string, number>;\n totalStates: number;\n totalEvents: number;\n totalTransitions: number;\n totalTicks: number;\n} {\n const byCategory: Record<string, number> = {};\n let totalStates = 0;\n let totalEvents = 0;\n let totalTransitions = 0;\n let totalTicks = 0;\n\n for (const behavior of STANDARD_BEHAVIORS) {\n byCategory[behavior.category] = (byCategory[behavior.category] ?? 0) + 1;\n const sm = behavior.stateMachine;\n if (sm) {\n totalStates += (sm.states || []).length;\n totalEvents += (sm.events || []).length;\n totalTransitions += (sm.transitions || []).length;\n }\n totalTicks += (behavior.ticks || []).length;\n }\n\n return {\n totalBehaviors: STANDARD_BEHAVIORS.length,\n byCategory,\n totalStates,\n totalEvents,\n totalTransitions,\n totalTicks,\n };\n}\n"]}