Package app.ductape.sdk.products.builder


package app.ductape.sdk.products.builder
Sprint 3 — Fluent ProductBuilder surface mirroring the TypeScript SDK's products.service.ts fluent DSL.

Design:

  • ProductBuilder is the root entry point obtained via ductape.products().builder(productTag) (or via the dedicated factory).
  • Each domain has a step-typed chain class (AppChain, DatabaseChain, GraphChain, etc.).
  • Chain methods are mutator-style (withX(...)) and return this; the terminal register() / define() method pushes the accumulated state to the backing ProductsService (server-side persisted) or returns a finalized Map payload (definition-only build).
  • Internal state is mutable for chain ergonomics; the ProductBuilder.build() exit yields an immutable Map snapshot of the full product definition.

Parity is enforced by ProductBuilderParityTest (Sprint 3) using JSON-snapshot comparison against the TypeScript reference fixtures (Sprint 6).