# P5B ZIP Import Design `scripts/lib/native-road-package.js` becomes the single host adapter. It resolves the config-relative ZIP path, hashes it, validates central-directory entry names and metadata, and extracts only accepted regular files to `_pipeline/native-road-import//`. It validates the unpacked manifest and returns an immutable package descriptor: ```text { zipFile, zipRecord, rootDir, manifest, records } ``` The descriptor replaces `area.outputs.nativeRoadDir` as native input for Blender, native preview traffic, diagnostics and stage manifests. The configured ZIP and unpacked cache are inputs, never published area outputs. Cache invalidation is by ZIP SHA-256; cleanup only deletes importer-owned hash directories. The importer rejects any non-root-flat layout, duplicate path, symlink, unsupported compression/error, path traversal, invalid manifest, area mismatch or declared/published mismatch before Blender starts. The native compiler CLI dependency and host-owned `nativeRoad` compilation options are removed. Legacy `osm2streets` remains an explicit separate provider.