Skip to content

Claim Track 2: L0 Types & Codegen #11

Description

@MichielBugherJelli

Track Claim

Track: Track 2 — L0 types & codegen (codegen)

Prior JVM experience: Extensive experience with Java 21 records, sealed types, Jackson polymorphic serialization (@JsonTypeInfo/@JsonSubTypes), JavaPoet code generation, Gradle plugin development, and JSON Schema validation.

Availability: Full-time contributor

First milestone commitment: Complete codegen implementation generating all 492 AdCP schemas into 1161 Java files with sealed interfaces, discriminated unions, builders, runtime schema validation, and schema bundle accessor.

Deliverables (Complete)

  • SchemaRegistry — loads and indexes all JSON Schema files, resolves $ref (absolute, relative, fragment)
  • SchemaPreprocessor — normalizes schemas (strips conditional allOf, array length constraints, conditionals)
  • TypeRegistry — maps schema paths to Java ClassName + TypeCategory
  • SchemaCodegen — full code generator: records, enums, sealed interfaces, builders, inline unions
  • AdcpSchemaValidator — thread-safe schema validation with networknt/json-schema-validator
  • AdcpObjectMapperFactory — Jackson ObjectMapper configured for AdCP payloads
  • SchemaBundle — runtime classpath schema accessor
  • ResponseSchemaValidationError — typed error for storyboard runner
  • @XEntity annotation — runtime annotation for entity identity
  • JSpecify @NullMarked package-info.java for all generated packages
  • x-enum-descriptions, x-deprecated-enum-values, x-extensible extension processing
  • Multi-discriminator support with defaultImpl fallback
  • 72 tests across 9 test classes, all green

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions