Skip to content

Add stable identities and a rename-aware type registry #7

Open

Description

@brmassa

Current State

Serializing .NET type full names as identity turns every class rename or move into missing nodes in saved assets. Node types, port types and host functions need opaque persistent identities, and renames must be registry data rather than asset edits. Consumers own their type sets (an engine registers vector and texture types; a video domain registers frame types).

Tasks:

  • StableId (type identity) and ElementId (element identity) GUID value types with canonical text form
  • IdentityRegistry<T> resolving identities through rename chains, rejecting empty identities, duplicates and rename cycles
  • GraphTypeRegistry for node types, port types, host functions and per-node-type migrations
  • IGraphTypeModule registration units for generated discovery (Generate node and port type registration at compile time #11)
  • Typed host-function registry entries (parameter and result port types)

Acceptance Criteria:

  • Renamed identities resolve to the current entry through any chain length
  • No API accepts or stores CLR type names as identity
  • The rename map is the only mechanism needed for a type rename

Related:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    c:coreCore model, identity, commands, validation, persistence and contractsp:highHigh priority — fix in current sprintsize:M~3-5 days — moderate effortt:featureNew feature implementation

    Type

    No type

    Projects

    • Status
      In review

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions