NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #5055 most downloaded on pub.dev
Annotations for Ack schema-first models and class-first schema generation
Last release 9 days ago
29 Sep 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 10 of 10 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
22 releases · first in 2025
One column per month.
@AckModel(description: ...) and @AckField(description: ...) set schema descriptions. Explicit values take precedence over @description doc tags.
@AckModel(description: ...) and @AckField(description: ...) set schema
descriptions. Explicit values take precedence over @description doc tags.@Url(), @Uuid(), and @Date() are string format annotations.format_annotations.dart exports @Uri() and @DateTime() for prefixed
imports. This keeps Dart core type names available.This coordinated release publishes ack , ack_annotations , ack_generator , ack_json_schema_builder , ack_mcp_dart , and ack_firebase_ai at version 1.6
This coordinated release publishes ack, ack_annotations, ack_generator, ack_json_schema_builder, ack_mcp_dart, and ack_firebase_ai at version 1.6.2.
Ack.fromJsonSchema() now compiles the standard pattern keyword, restoring import of schemas exported from Ack. It uses an unanchored ECMA-262 search on strings and rejects invalid regular expressions at import time.Ack.fromJsonSchema() now accepts the standard propertyNames keyword to validate each object key against its subschema. Both keywords round-trip through Draft-7 export unchanged.The other five packages are version aligned and have no source or public API changes from 1.6.1. Compatible sibling dependency minimums remain unchanged.
See the publishing guide and changelogs for details.
Honor effective nullability consistently across unions, defaults, boundaries, codecs, object properties, and list-item validation.
All six ACK packages are aligned at 1.6.1. See the core package changelog for compatibility details and migration guidance.
Align with the coordinated Ack 1.6 release; this package has no runtime or public API changes from 1.5.0.
Align with the coordinated Ack 1.5 release; this package has no runtime or public API changes from 1.4.0.
@AckField(presence: ...) remains during migration and is deprecated for removal in 2.0.0.
Ack 1.4 adds @Optional(), @Required(), and @NotNull() so class-first
models can override JSON key presence independently of whether a present
value may be null. @AckField(presence: ...) remains during migration
and is deprecated for removal in 2.0.0.
null on a nullable Dart field with @NotNull().copyWith from the constructor type so optional non-nullablenull.All six packages use version 1.4.0: ack, ack_annotations, ack_generator,
ack_firebase_ai, ack_json_schema_builder, and ack_mcp_dart.
The runtime, Firebase, JSON Schema, and MCP packages have no runtime or
public API changes from 1.3.0.
@Optional(), @Required(), and @NotNull() field annotations for
class-first key presence and JSON null rejection.AckField.presence and AckFieldPresence. Use @Optional() or
@Required(); they will be removed in Ack 2.0.0.Ack 1.3 adds ack_mcp_dart , a small adapter that uses one ACK input contract for MCP tool discovery and runtime argument parsing with mcp_dart ^2.4.2
Ack 1.3 adds ack_mcp_dart, a small adapter that uses one ACK input contract for
MCP tool discovery and runtime argument parsing with mcp_dart ^2.4.2.
All six packages use version 1.3.0: ack, ack_annotations, ack_generator,
ack_firebase_ai, ack_json_schema_builder, and ack_mcp_dart.
The existing five packages have no runtime or public API changes from 1.2.0,
and compatible dependency minimums remain at ^1.2.0.
Release tooling now uses Melos fixed versions and a shared workspace tag,
compares APIs with 1.2.0, and supports resuming a partially completed publication.
ack_mcp_dart;
this package has no runtime or public API changes from 1.2.0.docs: align contracts and Firebase fixture dependencies by @leoafarias in #126
Full Changelog: v1.1.0...v1.2.0
@AckInfer() for immutable schema-first model generation. Custom names
are exact and annotated libraries declare .ack.dart plus .ack.g.dart.@AckModel(), @AckField, constraint annotations,
unknown-property modes, exact schema facade names, and the generated JSON
marker used by Ack-owned output.@AckType(). It will be removed in Ack 2.0.0; use
@AckInfer() for schema-first models or @AckModel() for class-first
models. Its Ack 1.1 name suffixing and generated extension-type APIs remain
unchanged until removal.AckInfer and internal JSON marker annotation classes final.AckUnknownPropertyPolicy,
unknownProperties, and captureField, with no deprecated aliases.Ack 1.1.0 is a correctness-focused release that aligns runtime validation, generated schemas, and tooling with their documented contracts. It does not
Ack 1.1.0 is a correctness-focused release that aligns runtime validation,
generated schemas, and tooling with their documented contracts. It does not
change the public Dart API surface.
safeParse non-throwing for recoverable callback exceptions whileError values so programming defects remain visible.t and z separators.multipleOf, IPv6, RFC 3339 date-times, range bounds, collectionallOf, and export exactsource_gen diagnostics without undeclared debug-file output.Although the public API is unchanged, invalid or ambiguous inputs that were
previously accepted may now fail earlier:
ArgumentErrors.Ack.list(item).nullable()), not its item.multipleOf.toJsonSchema().AckException from parse() when a recoverable constraint orSee the package changelogs for the complete behavior notes.
This patch hardens recursive schemas built with Ack.lazy against unbounded recursion.
This patch hardens recursive schemas built with Ack.lazy against unbounded recursion.
Ack.lazy / LazySchema (#122): recursive schemas nowlazy_max_depth: "Maximum recursion depth (N) exceeded.") instead of crashing.Ack.lazy(...) accepts an optional maxDepth (default LazySchema.defaultMaxDepthcopyWith, equality, and serialization.maxDepth check can't be expressed via$ref and is omitted from the exported schema.Behavior note: recursion is now capped at depth 100 by default. Structures that
legitimately nest deeper must pass an explicit highermaxDepth.
The other packages (ack_annotations, ack_generator, ack_json_schema_builder,
ack_firebase_ai) are version-aligned to 1.0.1 with no functional changes.
Ack 1.0.0 is the first stable release of Ack, a schema validation library for Dart and Flutter. Ack helps you validate untrusted data at application b
Ack 1.0.0 is the first stable release of Ack, a schema validation library for Dart and Flutter. Ack helps you validate untrusted data at application boundaries, reuse the same schemas across runtime validation and JSON workflows, and generate typed wrappers when you want stronger ergonomics than map access.
Start with the documentation site or jump straight into the Quickstart Tutorial.
safeParse, SchemaResult, structured paths, and readable validation messages.@AckType() for extension types, typed getters, parse, and safeParse.toJsonSchema() and the reusable schema-model boundary for adapter authors.ack: core runtime validation library.ack_annotations: @AckType() annotation package.ack_generator: build_runner generator for typed schema wrappers.ack_json_schema_builder: adapter for json_schema_builder.ack_firebase_ai: Firebase AI structured-output schema adapter.Ack also publishes an llms.txt index with a compact overview of the packages, core APIs, code generation workflow, and common examples.
This release was validated with the full package test suites, documentation checks, example tests, and pub.dev dry-runs before publishing. All five packages are now available on pub.dev at version 1.0.0.
DoubleSchema and NumberSchema now reject non-finite values ( NaN , Infinity , -Infinity ) during runtime validation by default, aligning numeric schem
ackBreaking
DoubleSchema and NumberSchema now reject non-finite values (NaN, Infinity, -Infinity) during runtime validation by default, aligning numeric schemas with JSON-safe values.AckSchemaModel variants and a canonical AckSchema.toSchemaModel() adapter conversion.Added
Ack.enumCodec<T extends Enum>(List<T> values) returns a CodecSchema<String, T> wrapping EnumSchema<T>.NumberSchemaExtensions adds fluent numeric constraints to Ack.number(): .min, .max, .greaterThan, .lessThan, .positive, .negative, .multipleOf.Changed
Migration
double/num values. If a boundary must accept NaN/infinities, model that value outside the JSON numeric schema path before validation.ack_annotationsBreaking — Removed AckModel, AckField, and decorator annotations. Only @AckType() remains.
ack_generatorBreaking — Removed class-based schema generation. Only top-level @AckType() schema variables and getters are supported.
ack_firebase_aitoFirebaseAiResponseJsonSchema() for Firebase AI's GenerationConfig.responseJsonSchema path, plus committed golden fixtures and native fixture corpora.Schema conversion APIs — use toFirebaseAiResponseJsonSchema() instead.ack_json_schema_builderAckSchemaModel boundary and generic Draft-7 JSON Schema renderer; preserves defaults, const values, extension keywords, transformed metadata, and composition.All five packages are released in lockstep at 1.0.0-beta.12.
AckModel, AckField, and decorator annotations. ack_annotations
now exposes only @AckType().chore(release): bump to 1.0.0-beta.11
chore(release): bump to 1.0.0-beta.11 (#102)
docs: add ack package README for pub.dev
docs: add ack package README for pub.dev (#98)
chore(release): bump to 1.0.0-beta.9
chore(release): bump to 1.0.0-beta.9 (#88)
ack_json_schema_builder@1.0.0-beta.8
* See release notes for details.
AckType: Refined annotation parameters and improved type handling (#50).
AckField.required was replaced by requiredMode (AckFieldRequiredMode.auto|required|optional). Migrate @AckField(required: true) to @AckField(requiredMode: AckFieldRequiredMode.required) and required: false to requiredMode: AckFieldRequiredMode.optional.Documentation: Fixed broken links and added missing API documentation (#57).
meta dependency to latest version (#56).Dependency version bump to align with ack v1.0.0-beta.4.
REFACTOR: simplify validation workflow by eliminating duplicate nullable handling (#17).
* See release notes for details.
Your coding agent can read these notes before it upgrades. Set up the MCP server →