Summary

This PR replaces the existing TypeName system with a new TypeId implementation that provides richer and more expressive type metadata, as specified in #471.

/claim #471


Key Changes

1. New typeId Module

A complete new module implementing robust type identification:

Component Description
TypeId[A] Sealed trait with Nominal, Alias, and Opaque variants
Owner Ownership chain with Package/Term/Type segments
TypeParam Type parameters with variance and bounds support
TypeRepr Full type expression representation
Member Structural type members (Val, Def, TypeMember)
TermPath Singleton type path representation

2. Cross-Version Macro Derivation

TypeId.derive[T] compiles on both:

  • Scala 2.13 - using scala-reflect macros
  • Scala 3.5+ - using scala.quoted macros

3. Schema Module Migration

  • Added typeid as dependency for schema module
  • Deprecated TypeName and Namespace with migration path
  • All existing tests continue to pass

Test Results

typeid Module

Scala Version Tests
Scala 3.3.7 ✅ 46 passed
Scala 2.13.18 ✅ 46 passed

schema Module

Scala Version Tests
Scala 3.3.7 ✅ 643 passed
Scala 2.13.18 ✅ 599 passed

Total: 1,334 tests passing across both Scala versions.


Demo Video

  1. https://github.com/user-attachments/assets/bfd1fd57-7c53-45d3-9f35-8dc8cfd7f5b3

  2. https://github.com/user-attachments/assets/16d68db3-9c6e-4fa1-b648-f9f88105ed76


Fixes #471

Claim

Total prize pool $3,000
Total paid $0
Status Pending
Submitted December 19, 2025
Last updated December 19, 2025

Contributors

NA

Natneal.B

@natinew77-creator

100%

Sponsors

ZI

ZIO

@ZIO

$3,000