v0.0.20

23 June 2026

Adopted PHP 8.4 property hooks and asymmetric visibility in core classes.

Changed

  • File::$contents is now a public property backed by a property hook (lazy-read, memoized) instead of a contents() method.
  • Router::$routes uses asymmetric visibility (public private(set)) in place of a separate routes() getter.
  • DataFile reads through the new File::$contents hook directly.