@neocompose/cli 0.38.6 → 0.40.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,43 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.40.0] - 2026-08-30
4
+
5
+ ### Changed
6
+
7
+ - Use the canonical `Size`, `Offset`, and `IsTrigger` fields for `NeoCollider`.
8
+ - Stop carrying localization authoring records inside runtime `project.json`;
9
+ localization manifests and locale files continue to ship separately.
10
+ - Retain the checked-in schema-29 CLI corpora as historical authoring-bearing
11
+ source fixtures. Schema-30 runtime wire cannot regenerate those corpora
12
+ because it deliberately omits the localization authoring graph; fixture
13
+ generation does not synthesize the missing records.
14
+
15
+ ### Compatibility
16
+
17
+ - This CLI requires runtime export schema 30 and the matching Neo Compose SDK.
18
+ Runtime exports no longer embed localization authoring records in
19
+ `project.json`; locale metadata and locale files remain unchanged.
20
+
21
+ ## [0.39.0] - 2026-08-29
22
+
23
+ ### Changed
24
+
25
+ - Adopt project source format 4 and schema contract 4.0. Project records now
26
+ use compact numeric setting ordinals, a single class/member modality axis,
27
+ and absent keys for default enum arms.
28
+ - Replace `@hidden` with `@visibility(.Hidden)`, replace boolean annotation
29
+ settings with contextual enum cases, and remove the unused `@locked`
30
+ annotation.
31
+ - Canonicalize absent lookup collection values and variant-folder bindings
32
+ without writing equivalent `null` spellings.
33
+
34
+ ### Compatibility
35
+
36
+ - This CLI requires runtime export schema 29 and the matching Neo Compose SDK.
37
+ Older SDKs would silently lose class/member modality, interpret the new
38
+ ordinal settings as their old defaults, and retain protection behavior for
39
+ the removed `locked` field.
40
+
3
41
  ## [0.38.6] - 2026-08-29
4
42
 
5
43
  ### Fixed
package/README.md CHANGED
@@ -124,7 +124,7 @@ abstract class InventoryItem<
124
124
  TContext extends SomeClass
125
125
  > {
126
126
  @id("item-name-id")
127
- @settings(localizable: true, searchKey: true)
127
+ @settings(searchBy: .MemberKey)
128
128
  virtual string Name = "";
129
129
 
130
130
  @id("item-rarity-id")
@@ -149,10 +149,10 @@ abstract class InventoryItem<
149
149
  The source identifier is the persisted name. `@settings` and `@storage` are
150
150
  typed by their declaration context; invalid fields and enum cases are
151
151
  diagnostics. Swift-like `.EnumCase` syntax works whenever the expected enum
152
- type is known. Focused annotations such as `@id`, `@locked`, `@hidden`,
153
- and `@relations` carry cross-cutting behavior. Never author `@system`; it is
154
- reserved for platform-owned system records. `@hidden` marks a class the member
155
- selector and classes tree leave out; absent means visible.
152
+ type is known. Focused annotations such as `@id`, `@visibility`, and
153
+ `@relations` carry cross-cutting behavior. Never author `@system`; it is
154
+ reserved for platform-owned system records. `@visibility(.Hidden)` marks a
155
+ class the member selector and classes tree leave out; absent means visible.
156
156
 
157
157
  Lists take repeatable `@index` and `@column` annotations naming a field on the
158
158
  entry class. An index requires a non-localizable `string` or a single-select
@@ -162,9 +162,9 @@ default layout for every field a subclass adds.
162
162
  ```neo
163
163
  @id("outpost-list-id")
164
164
  @settings(kind: .Unordered)
165
- @index(member: Slug, unique: true)
166
- @column(member: Slug, width: 158, frozen: true)
167
- @column(member: Notes, hidden: true)
165
+ @index(member: Slug, kind: .Unique)
166
+ @column(member: Slug, width: 158, pin: .Leading)
167
+ @column(member: Notes, visibility: .Hidden)
168
168
  public List<Outpost> Outposts = [];
169
169
  ```
170
170