@empressaio/atom-contract 1.12.0 → 1.14.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 +80 -0
- package/README.md +7 -1
- package/dist/conformance/common.d.ts +1 -1
- package/dist/conformance/common.js +1 -1
- package/dist/property/cad-parcel-roll.d.ts +710 -0
- package/dist/property/cad-parcel-roll.d.ts.map +1 -0
- package/dist/property/cad-parcel-roll.js +147 -0
- package/dist/property/cad-parcel-roll.js.map +1 -0
- package/dist/property/common.d.ts +131 -0
- package/dist/property/common.d.ts.map +1 -1
- package/dist/property/common.js +92 -0
- package/dist/property/common.js.map +1 -1
- package/dist/property/fixtures.d.ts +324 -0
- package/dist/property/fixtures.d.ts.map +1 -1
- package/dist/property/fixtures.js +621 -0
- package/dist/property/fixtures.js.map +1 -1
- package/dist/property/flood-hazard-fact.d.ts +610 -0
- package/dist/property/flood-hazard-fact.d.ts.map +1 -0
- package/dist/property/flood-hazard-fact.js +102 -0
- package/dist/property/flood-hazard-fact.js.map +1 -0
- package/dist/property/index.d.ts +4 -0
- package/dist/property/index.d.ts.map +1 -1
- package/dist/property/index.js +4 -0
- package/dist/property/index.js.map +1 -1
- package/dist/property/land-use-fact.d.ts +602 -0
- package/dist/property/land-use-fact.d.ts.map +1 -0
- package/dist/property/land-use-fact.js +87 -0
- package/dist/property/land-use-fact.js.map +1 -0
- package/dist/property/parcel-node.d.ts +710 -0
- package/dist/property/parcel-node.d.ts.map +1 -0
- package/dist/property/parcel-node.js +156 -0
- package/dist/property/parcel-node.js.map +1 -0
- package/dist/property/road-node.d.ts +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,86 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@empressaio/atom-contract` (formerly `@hauska/atom-contract`) are documented here.
|
|
4
4
|
|
|
5
|
+
## [1.14.0] - 2026-08-08
|
|
6
|
+
|
|
7
|
+
Additive minor — three county-shape property rails with first-class typed absence:
|
|
8
|
+
`flood-hazard-fact`, `cad-parcel-roll`, and `land-use-fact`.
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **`flood-hazard-fact`** on `./property` — FEMA NFHL SFHA finding or honest
|
|
13
|
+
absence (`no-flood-coverage`). Present tier requires `inSpecialFloodHazardArea`;
|
|
14
|
+
outside-mapped parcels are present with SFHA false, not absence. `sourceTier:
|
|
15
|
+
fema-nfhl | absent`; county-level `verifiedAbsence` fail-closed when absent.
|
|
16
|
+
- **`cad-parcel-roll`** on `./property` — county appraisal roll row or honest
|
|
17
|
+
absence (`no-cad-row`, `join-hold`). Owner fields gated on
|
|
18
|
+
`joinPassedOwnerMatchGate`; wrong owner worse than missing. `sourceTier:
|
|
19
|
+
cad-authoritative | absent`; `sourceFile` required on present tier.
|
|
20
|
+
- **`land-use-fact`** on `./property` — CAD `property_use_code` or honest
|
|
21
|
+
absence (`no-land-use-code`, `no-cad-row`, `join-hold`). Writers read county
|
|
22
|
+
CAD only; Cotality land_use_code is dead.
|
|
23
|
+
- Shared helpers: `CAD_ROLL_SOURCE_TIER_SCHEMA`, `FLOOD_HAZARD_*`,
|
|
24
|
+
`LAND_USE_ABSENCE_SCHEMA`, `LAND_ACRES_SCHEMA`.
|
|
25
|
+
- Fixtures and negative probes for each rail.
|
|
26
|
+
- `PROPERTY_CONFORMANCE_TARGET_VERSION = "1.14.0"`.
|
|
27
|
+
|
|
28
|
+
### Explicitly NOT in 1.14.0
|
|
29
|
+
|
|
30
|
+
- `parcel-owner-facet` (owner facet) — specify-only; not published.
|
|
31
|
+
- `mud`, `rrc`, `pipeline`, `soil-survey-fact` — specify-only; not published.
|
|
32
|
+
- Parcel ring atoms or geometry on property atoms — Geometry Law unchanged.
|
|
33
|
+
- New relationship layer — `atom_links` already ships.
|
|
34
|
+
- Cotality sourcing tier — extinguished; never wired.
|
|
35
|
+
|
|
36
|
+
## [1.13.0] - 2026-08-08
|
|
37
|
+
|
|
38
|
+
Additive minor — `parcel-node`, the Rail 1 parcel identity and geometry-provenance
|
|
39
|
+
anchor. MCP has advertised this entity type on the property chain since the chain
|
|
40
|
+
shipped, with no producer behind it; this lands the shape so the engine can write it.
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
- **`parcel-node`** on `./property` — observed parcel ANCHOR atom
|
|
45
|
+
(`reasoningKind: observed`, uniform `public-free`). Carries parcel identity
|
|
46
|
+
(`parcelNodeId`, `countyFips`, `keyKind`, per-key-provenance `externalKeys`),
|
|
47
|
+
ring provenance (`geometrySourceTier: txgio-stratmap | county-arcgis-override |
|
|
48
|
+
absent`, `sourceVintage`, `divergenceObservationCount`), and load state
|
|
49
|
+
(`geometryLoaded`).
|
|
50
|
+
- **Geometry by reference, never by value.** `geometryStoreRef` is a typed pointer
|
|
51
|
+
`{ store: "txgio_parcel", countyFips, propId }` into the single geometry truth
|
|
52
|
+
frame (Geometry Law rule 1, `_decisions/2026-08-07_envelope_saga_close_and_geometry_law`).
|
|
53
|
+
The schema is `.strict()` on that pointer, so an inlined ring is a parse error —
|
|
54
|
+
the atom cannot become a second source of geometry truth.
|
|
55
|
+
- **First-class typed absence**, matching the `building-footprint` /
|
|
56
|
+
`utility-easement` pattern: county-level `verifiedAbsence` (mandatory non-empty
|
|
57
|
+
`provenanceScope`, fail-closed when `geometrySourceTier: absent`) on the
|
|
58
|
+
`{fips}:_county_coverage` anchor, plus per-parcel `absence` kinds
|
|
59
|
+
`no-parcel-geometry`, `geometry-incomplete` (MultiPolygon truncation finding),
|
|
60
|
+
and `parcel-key-unresolved`. Absence and a resolved pointer are mutually
|
|
61
|
+
exclusive; `geometryLoaded` must agree with the pointer.
|
|
62
|
+
- `PARCEL_KEY_KIND_SCHEMA` (`prop_id | geo_id_crosswalk`) — records which key the
|
|
63
|
+
second `parcelNodeId` token carries for crosswalk counties. Identity metadata,
|
|
64
|
+
not the join-quality rate (which stays a manifest/roster metric, not atomized).
|
|
65
|
+
- `parcelNodeAtomDid`, `PARCEL_NODE_ATOM_DID_PATTERN` — preserves the already
|
|
66
|
+
published MCP form `did:hauska:parcel-node:{parcelNodeId}`; the schema rejects
|
|
67
|
+
an `atomDid` that does not embed its own `parcelNodeId`.
|
|
68
|
+
- Fixtures: Bastrop loaded parcel, Travis crosswalk-key parcel, county-coverage
|
|
69
|
+
verified absence, per-parcel absence, MultiPolygon-incomplete finding, and six
|
|
70
|
+
negative fixtures.
|
|
71
|
+
- `PROPERTY_CONFORMANCE_TARGET_VERSION = "1.13.0"`.
|
|
72
|
+
|
|
73
|
+
### Explicitly NOT in 1.13.0
|
|
74
|
+
|
|
75
|
+
- Parcel ring geometry as atom payload — rejected; `txgio_parcel` stays the one
|
|
76
|
+
ring per parcel.
|
|
77
|
+
- Any change to `parcelNodeId` shape or the MCP `parcel_node_id` parameter —
|
|
78
|
+
re-keying was rejected (2,269 call sites, published tool parameter, DIDs embed
|
|
79
|
+
the key).
|
|
80
|
+
- A new relationship layer — `atom_links` already ships.
|
|
81
|
+
- `cad-parcel-roll`, `land-use-fact`, `parcel-owner-facet`, `flood-hazard-fact`,
|
|
82
|
+
`soil-survey-fact` — later rails in the same spec.
|
|
83
|
+
- `buildable-envelope.absence` — still queued.
|
|
84
|
+
|
|
5
85
|
## [1.12.0] - 2026-08-05
|
|
6
86
|
|
|
7
87
|
Additive minor — building footprint and utility easement site-layer atoms (ADR-029 / T3).
|
package/README.md
CHANGED
|
@@ -279,7 +279,7 @@ import {
|
|
|
279
279
|
## Property reasoning atom kinds (master WDLL 3.2–3.6)
|
|
280
280
|
|
|
281
281
|
Parcel buildable-answer chain atoms ship on the `./property` subpath
|
|
282
|
-
(v1.9.0+): `zoning-fact`, `setback-rule`, `buildable-envelope`,
|
|
282
|
+
(v1.9.0+): `parcel-node`, `zoning-fact`, `setback-rule`, `buildable-envelope`,
|
|
283
283
|
`parcel-terrain-model`, `road-node`, `building-footprint`, `utility-easement`.
|
|
284
284
|
All are data-tier (`atomTier: "data"`) and default to `public-free`
|
|
285
285
|
accessPolicy when undeclared on the registration.
|
|
@@ -307,6 +307,7 @@ import {
|
|
|
307
307
|
|
|
308
308
|
| `entityType` | `reasoningKind` | Key fields |
|
|
309
309
|
|---|---|---|
|
|
310
|
+
| `parcel-node` | `observed` | `keyKind`, `geometryStoreRef` pointer (never the ring) OR `absence`/`verifiedAbsence` |
|
|
310
311
|
| `zoning-fact` | `observed` | `district` OR `absence.no-zoning-stamp` |
|
|
311
312
|
| `setback-rule` | `observed` | `front`/`side`/`rear`, typed `sourceCodeAtomRef`, `matchBasis` |
|
|
312
313
|
| `buildable-envelope` | `derived` | `buildable-envelope-inset-v1`, input refs to fact + rule + geometry |
|
|
@@ -315,6 +316,11 @@ import {
|
|
|
315
316
|
| `building-footprint` | `observed` | `footprintGeometry` OR `absence`/`verifiedAbsence`; `sourceTier` |
|
|
316
317
|
| `utility-easement` | `observed` | `easementGeometry`, `easementClass`, `public-free` always |
|
|
317
318
|
|
|
319
|
+
`parcel-node` is the Rail 1 anchor every other property rail keys on. It records
|
|
320
|
+
parcel identity and ring PROVENANCE; the ring itself stays in `txgio_parcel`, the
|
|
321
|
+
one geometry truth frame (Geometry Law rule 1). `geometryStoreRef` is a strict
|
|
322
|
+
pointer, so an inlined ring fails to parse.
|
|
323
|
+
|
|
318
324
|
ICC royalties on code citations accrue via core `ObligationAtomInstance`
|
|
319
325
|
rows — no standalone `SourceAttribution` type.
|
|
320
326
|
|
|
@@ -22,7 +22,7 @@ export type ReasoningConformanceTargetVersion = typeof REASONING_CONFORMANCE_TAR
|
|
|
22
22
|
/**
|
|
23
23
|
* Pin property atom kind adopters to this semver (master WDLL 3.2–3.6).
|
|
24
24
|
*/
|
|
25
|
-
export declare const PROPERTY_CONFORMANCE_TARGET_VERSION: "1.
|
|
25
|
+
export declare const PROPERTY_CONFORMANCE_TARGET_VERSION: "1.14.0";
|
|
26
26
|
export type PropertyConformanceTargetVersion = typeof PROPERTY_CONFORMANCE_TARGET_VERSION;
|
|
27
27
|
/** Data-level atoms carry signed history; app-level workflow containers skip it. */
|
|
28
28
|
export type AtomTier = "data" | "app";
|
|
@@ -19,7 +19,7 @@ export const REASONING_CONFORMANCE_TARGET_VERSION = "1.8.0";
|
|
|
19
19
|
/**
|
|
20
20
|
* Pin property atom kind adopters to this semver (master WDLL 3.2–3.6).
|
|
21
21
|
*/
|
|
22
|
-
export const PROPERTY_CONFORMANCE_TARGET_VERSION = "1.
|
|
22
|
+
export const PROPERTY_CONFORMANCE_TARGET_VERSION = "1.14.0";
|
|
23
23
|
export const ATOM_TIER_VALUES = ["data", "app"];
|
|
24
24
|
export const ACCESS_POLICY_VALUES = [
|
|
25
25
|
"public-free",
|