{"version":3,"file":"index.cjs","names":[],"sources":["../../src/components/identity-component.ts"],"sourcesContent":["import { EntityTypeUid, IEntityModel } from '../entities/entity';\nimport { Immutable } from '../utils/types';\nimport { IComponent } from './component';\n\n/**\n * The `BasicComponentType` enum defines the types of basic components available.\n */\nexport enum BasicComponentType {\n  identity = 'identity'\n}\n\n/**\n * The mandatory metadata component for every entity.\n * Contains core information that defines what an entity is and when it was last updated.\n * This component is immutable after creation and uniquely identifies each entity.\n *\n * @template TModel - The entity model type containing initialization data.\n */\nexport interface IdentityComponent<TModel extends IEntityModel> extends IComponent {\n  /**\n   * The entity type classification.\n   * Categorizes entities into logical types, allowing systems to selectively operate on specific entity categories.\n   */\n  readonly entityType: EntityTypeUid;\n\n  /**\n   * The initialization model for this entity.\n   * Provides the minimal data structure used when the entity was first created.\n   * Serves as a reference point for the entity's initial configuration.\n   *\n   * @type {Immutable<TModel>}\n   */\n  readonly model: Immutable<TModel>;\n\n  /**\n   * The timestamp of the entity's last system update.\n   * Useful for calculating elapsed time (delta time) between consecutive updates.\n   * Helps systems make time-aware decisions.\n   *\n   * @type {Date | undefined}\n   */\n  readonly lastUpdated?: Date;\n}\n"],"mappings":";;;;;AAOA,IAAY,qBAAL,yBAAA,oBAAA;CACL,mBAAA,cAAA;;AACF,EAAA,CAAA,CAAA"}