Historical document. This plan is preserved from source revision
61e75e9; it is not current implementation guidance. Original source.
Make bundle the domain reading layer for provenance, trust, lifecycle,
Attested Computation, keyed attribution, and referenced assets. Preserve
permissive conformance, BYOT, and lossless round-tripping of unknown keys.
Dependency: task09.md.
bundle.OKFVersion == "0.1".timestamp, but not v0.2 field families.Document.Citations() understands only positional # Citations.Bundle.Load does not retain non-Markdown .sql/.py assets.sources[].id as a fragment.Add small, open reading models:
Generation;Verification;UsageWindow;ProvenanceSource (Source is already used by a storage interface);TrustTier;ComputationParameter;ExecutorContract;AttesterContract;AttestedComputationContract.Actor, runtime, parameter type, and receipt field names remain open strings. Do not introduce closed registries/enums.
Add accessors:
Sources, shared/effective UsageWindow;Generated, Verifications;TrustTier;Status;StaleAfter and a helper with an explicit reference date;AttestedComputation;Normalize a bare verified mapping to a one-element slice without changing the
raw YAML.
Get, Set, and YAMLNode remain authoritative.FrontmatterSchema.timestamp from ExtensionKeys;
relations remains a project extension.Add footnote references/definitions and Document.Attributions():
sources[].id;Citation API.Load retains all revision-visible regular files.MarkdownFiles() retains its existing semantics.Files()/AssetFiles() with defensive copies.ReadFile() reads captured .sql, .py, and .json files without further I/O..okf security contract.sources[].id is not concept#fragment.duplicate_fragment.Do not expand Document.ValidateConformance(): its hard requirement remains
parseable frontmatter and a non-empty string type.
Bundle.Load.Timestamp() as a deprecated legacy accessor.generated.at is authoritative; a malformed present generated must not
silently fall back to timestamp.bundle/doc.go;bundle/frontmatter.go, new frontmatter_v02.go;bundle/document.go;bundle/links.go or new attribution.go;bundle/bundle.go;bundle/semantic_index.go;bundle/relations.go;All tests use AAA.
verified.today == stale_after.generated without at does not fall back.sources[].id does not appear in subresource/relation indexes..sql/.py files are captured and revision-visible.bundle.OKFVersion == "0.2".go test ./bundle and go test ./... pass.Execution, parameter binding, runtime receipts/verdicts, attester ABI/sandbox, caching, and automatic migration.