@neocompose/cli 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/neo.mjs +2288 -342
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.16.0] - 2026-07-30
4
+
5
+ ### Added
6
+
7
+ - Name the member a class writes with `@settings(target: Class.Member)` on the
8
+ class declaration. The target is schema metadata rather than a row field, so
9
+ it is stored on the class record, validated at push, and re-emitted by
10
+ `neo pull` as the same `Class.Member` path.
11
+ - Seven world kinds for the P48 animation segment family: `AnimationFrameBase`,
12
+ `AnimationSegmentFrame`, `AnimationSegment`, `SpriteAnimationSegment`,
13
+ `AnimationTrack`, `AnimationSegmentTrack`, and
14
+ `SpriteAnimationSegmentTrack`, alongside the existing clip, frame, child
15
+ override, and child track kinds.
16
+
17
+ ### Changed
18
+
19
+ - Resolve an annotation's `Class.Member` path against the whole class rather
20
+ than its own declarations. `@settings(collection:)` and
21
+ `@settings(target:)` may now name a member the class inherits; naming one
22
+ through a subclass used to fail as unresolved.
23
+ - Spell a generic type argument bound to a structured leaf with its source
24
+ name. `SpriteInfo`, `Vector2`, and `Color` bindings validate at push and
25
+ emit as themselves instead of as their internal kind slug.
26
+ - Advance the project-schema contract to 3.8: a lookup member record carries
27
+ `declaredTypeInfo`, the type its declaration spells when that narrows the
28
+ collection's entry type. `NeoAnimationSegmentTrack.Child` is a covariant
29
+ override narrowed to the track's own `TChild`, and without it `neo pull`
30
+ re-emitted the collection entry's `NeoObjectBase` and the next push deleted
31
+ the narrowing.
32
+ - Substitute a class's generic bindings when checking an object initializer
33
+ against an inherited field. Assigning a member whose declared type is a
34
+ generic parameter was rejected against the bare parameter name; the
35
+ diagnostic now names the bound class.
36
+ - `NeoAnimationFrame` now derives from `NeoAnimationFrameBase` and
37
+ `NeoAnimationChildTrack` from `NeoAnimationTrackBase`; `Index`, `Child`, and
38
+ `StartFrame` keep their ids on the new bases. `NeoAnimationClip.Tracks`
39
+ holds `NeoAnimationTrackBase`, so a clip's track list is polymorphic.
40
+ - The animation family no longer declares `@storage(allowed: .Immutable)`;
41
+ each class documents what a mid-play change means instead.
42
+
3
43
  ## [0.15.0] - 2026-07-28
4
44
 
5
45
  ### Added