| Crates.io | sheetport-spec |
| lib.rs | sheetport-spec |
| version | 0.3.0 |
| created_at | 2025-12-14 06:19:17.6839+00 |
| updated_at | 2025-12-14 06:19:17.6839+00 |
| description | SheetPort spec schema + validation tooling |
| homepage | https://github.com/psu3d0/formualizer |
| repository | https://github.com/psu3d0/formualizer |
| max_upload_size | |
| id | 1983894 |
| size | 125,821 |
sheetport-spec defines the Formualizer I/O (FIO) manifest format used by SheetPort.
schema/fio-0.3.json (Draft 2019-09)0.3.0 (spec_version)core-v0 (default), full-v0 (reserved)A FIO manifest binds typed input/output ports to workbook regions so a spreadsheet can be treated like a deterministic function:
The manifest is a contract: it describes what data is expected, where it lives in the workbook, and how it is shaped.
Manifests may include:
capabilities:
profile: core-v0
core-v0 limits selector usage to features expected to be broadly supported.
core-v0 supports: a1, name, layoutfull-v0 is reserved for: struct_ref, workbook table selectorsRust:
use sheetport_spec::Manifest;
let yaml = std::fs::read_to_string("manifest.fio.yaml")?;
let manifest: Manifest = Manifest::from_yaml_str(&yaml)?;
manifest.validate()?;
CLI (from workspace root):
cargo run -p sheetport-spec --bin fio-lint -- tests/fixtures/supply_planning.yaml
cargo run -p sheetport-spec --bin fio-lint -- tests/fixtures/supply_planning.yaml --normalize
--normalize emits a canonicalized YAML form (sorted/deduped where applicable).
spec_version in the manifest is the authoritative spec version.