v0.0.66

9 July 2026

Blocks and stack fieldtypes, dot-path registry queries, a tightened image DSL, and a bug that dropped page/user status fields.

Added

  • FieldTypeBlocks: an ordered list of typed blocks ({type, data}), each resolving its fields from options.types[type].fields. Not registry-searchable.
  • FieldTypeStack: an ordered list where each entry references one existing global field by name.
  • Phlat\Data\Block: the value object backing blocks-field entries.
  • Registry DSL: dot-path subkey scoping (intro.title=Foo) and sort=field.subkey.
  • Image transform DSL: posterize, quality, rotate, flip, orient, trim, colorize options. EXIF orientation is applied before resize when orient is set.

Fixed

  • Page/User dropped hidden, status, and locked from index.json, since structuralKeys() didn't include the parent's own structural keys.

Changed

  • Removed FieldTypeHttp, a short-lived experimental fieldtype introduced in v0.0.53.
  • Image transform DSL options must now be explicit key=value pairs; the bare crop/grayscale shorthand is gone in favor of fit=crop/grayscale=true.
  • PageImage::resize() removed (a thin wrapper over transform()); placeholder() moved from a field-instance method to a global Latte function.