wolfram-export-core 0.6.0

Shared inventory + manifest plumbing for the wolfram-export-* crates
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.6.0] — 2026-07-09

### Added

* Initial release. Internal shared plumbing crate for the `wolfram-export-*`
  family.

* Defines the `ExportEntry` enum (the unified inventory record type across
  native, `Margs`, WSTP, and WXF export modes) and the `inventory::collect!`
  declaration that all export runtimes submit into.

* Provides `exported_library_functions_association` — the shared builder that
  produces the `Association[name -> LibraryFunctionLoad[…], …]` `Expr` used at
  both WSTP load time and WXF build time.

* **`LibraryArtifact`** — describes one built library to include in a
  generated loader (its path `Expr`, an optional namespace, and its decoded
  `FunctionEntry` list).

* **`library_functions_loader`** — single public entry point that builds the
  `With[{callers…, lib1 = path1, …}, <|key -> Caller[LibraryFunctionLoad[…]], …|>]`
  association from a `&[LibraryArtifact]`, replacing the lower-level
  `ExportKind`/`caller_binding`/`library_function_load`/`library_function_rule`/
  `export_key` helpers (now private — see below).

* **`ExportEntry::Margs`** / `FunctionEntry`'s `"Margs"` kind — support for
  `#[export(margs)]` (raw `MArgument`, manually marshaled). Its signature is
  always present (the macro materializes one from the user's
  `args = (..)`/`ret = ..` annotation, or a `LinkObject`/`LinkObject` default
  with a compile-time warning), so `library_functions_loader` handles it
  identically to `Native` — same wire ABI, same `NativeCaller` wrapper.

### Changed

* **`__wolfram_manifest__`** C-ABI symbol consolidated: the crate previously
  exposed two build-time `dlopen`-able symbols (`__wolfram_manifest__(out_len)`,
  returning an `Association`-shaped WXF blob, and `__wolfram_manifest_data__()`,
  returning a length-prefixed WXF `Vec<FunctionEntry>`). There is now a single
  `__wolfram_manifest__()` symbol using the length-prefixed `Vec<FunctionEntry>`
  format.
* **`FunctionEntry`** now derives `Clone` and its fields carry real doc
  comments (previously `#[allow(missing_docs)]`).

### Removed

* **Breaking:** `ExportKind`, `caller_binding`, `library_function_load`,
  `library_function_rule`, and `export_key` are no longer public — they were
  low-level helpers with no use outside this crate's own
  `library_functions_loader`/`exported_library_functions_association`, now
  private. Anyone depending on these directly should use the new
  `library_functions_loader` entry point instead.