@metaobjectsdev/sdk 0.20.14 → 0.20.15-rc.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.
@@ -731,6 +731,18 @@ declared field set IS the exposure (fail-closed). Give it a read-only `source.rd
731
731
  projection detection + view DDL off that read-only source, so without it `meta gen`
732
732
  emits nothing for the projection.
733
733
 
734
+ **A CONCRETE projection declares its OWN source — never inherits one.** A
735
+ projection may `extends` another projection to reuse shape, but the child must
736
+ declare its own `source.rdb`; inheriting the parent's is
737
+ `ERR_PROJECTION_INHERITED_SOURCE`. `extends` only ADDS fields, so an inherited view
738
+ cannot provide the child's extra columns, and two objects would claim one physical
739
+ view with different exposures. The sanctioned pattern is an **abstract, sourceless**
740
+ projection base carrying shared shape, with each concrete projection declaring its
741
+ own view — so a versioned successor (`CustomersV2 extends CustomersV1`) declares
742
+ `v_customers_v2` rather than silently sharing V1's view. (Same rule JPA gets from
743
+ `@MappedSuperclass` and Django documents as the `db_table`-on-abstract trap; ADR-0028
744
+ amendment 2026-08-06.)
745
+
734
746
  **Origin vocabulary (#195).** `origin.aggregate @agg` takes `count`/`sum`/`avg`/`min`/`max`
735
747
  (numeric reduces over `@of`), `any`/`all` (predicate quantifiers over a `@filter`; `@of`
736
748
  forbidden; empty set → `any=false`, `all=true`), and `collect` (an array rollup of `@of`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/sdk",
3
- "version": "0.20.14",
3
+ "version": "0.20.15-rc.1",
4
4
  "description": "Workspace helpers and agent-docs utilities for MetaObjects projects.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -56,7 +56,7 @@
56
56
  "access": "public"
57
57
  },
58
58
  "dependencies": {
59
- "@metaobjectsdev/metadata": "0.20.14",
59
+ "@metaobjectsdev/metadata": "0.20.15-rc.1",
60
60
  "zod": "^3.23.0"
61
61
  },
62
62
  "devDependencies": {