@neocompose/cli 0.49.0 → 0.50.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.49.0",
3
+ "version": "0.50.1",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,7 @@ description: >-
9
9
  `@neocompose/cli` or `node cli/bin/neo.mjs` in the neo-compose repository.
10
10
  ---
11
11
 
12
- <!-- reviewed-through-cli: 0.49.0 -->
12
+ <!-- reviewed-through-cli: 0.50.1 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -24,6 +24,29 @@ For world layer links, derive a concrete project class from
24
24
  `targetLayer` relation. Do not add value-level target metadata or ask painting
25
25
  operations to create/repair relation targets.
26
26
 
27
+ ## Tile placements
28
+
29
+ Use `@tile(VoidTile)` on a `NeoTileInstance` construction to select its tile
30
+ class. The named spelling `@tile(asset: VoidTile)` is equivalent; the asset is
31
+ required and only the argument label is optional.
32
+
33
+ ```neo
34
+ @tile(VoidTile)
35
+ new NeoTileInstance() {
36
+ Cell = new(9, -4)
37
+ }
38
+ ```
39
+
40
+ Pull emits the positional spelling. The annotation writes the placement's
41
+ `assetClassId` metadata and does not construct a tile value or add a generic
42
+ argument. The asset must be a concrete, non-generic descendant of `NeoTile`.
43
+ Use the annotation on persisted literal constructions; executable NeoScript
44
+ and evaluated placement constructors reject it.
45
+ The grid's imports and the tile's compatible-layer relations still constrain
46
+ where the placement can be used. Existing placement overrides remain attached
47
+ when the selected asset is unchanged; recreate a placement to change its asset
48
+ when it has overrides or a variant.
49
+
27
50
  ## Object variants
28
51
 
29
52
  A variant is a named configuration of one `NeoObject`-derived class: how to
@@ -88,7 +88,7 @@ wrappers.
88
88
  The marker near the top of `SKILL.md` must exactly match the package version:
89
89
 
90
90
  ```html
91
- <!-- reviewed-through-cli: 0.49.0 -->
91
+ <!-- reviewed-through-cli: 0.50.1 -->
92
92
  ```
93
93
 
94
94
  The quoted version above is checked too, so this instruction cannot go stale
@@ -61,6 +61,10 @@ bodies affected by changed declarations. Use `--force-recompile` with either a
61
61
  dry run or a real push only when diagnosing stale derived IR: it retains the
62
62
  exhaustive project-wide body sweep and is intentionally slower.
63
63
 
64
+ Changed member bodies and migration bodies share one schema projection and its
65
+ indexes throughout push preparation. Each changed member body is compiled once,
66
+ so a batch of scripted changes does not rebuild the whole schema for every body.
67
+
64
68
  Interactive status, diff, pull, and test commands report workspace loading and
65
69
  preparation phases. Spinners continue animating during synchronous compilation;
66
70
  `NO_COLOR` removes color without stopping the animation. JSON reporters and