50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
1. Scope
|
|
This profile defines the minimum required behavior for runtimes that execute tricu bundles.
|
|
|
|
2. Non-goals
|
|
No tricu source parsing.
|
|
No lambda elimination.
|
|
No module system.
|
|
No package manager.
|
|
No local DB requirement.
|
|
No authoring names beyond bundle exports.
|
|
|
|
3. Required bundle sections
|
|
Header
|
|
Manifest/exports
|
|
Merkle nodes
|
|
|
|
4. Optional/skippable sections
|
|
Source, debug, package metadata, signatures, provenance, etc.
|
|
|
|
5. Entrypoint selection
|
|
Explicit export name first.
|
|
Else export named main.
|
|
Else single default root.
|
|
Else error.
|
|
|
|
6. Node payload format
|
|
Leaf/Stem/Fork byte layouts.
|
|
|
|
7. Hash verification
|
|
Domain string and payload hashing rules.
|
|
|
|
8. Closure verification
|
|
All referenced child hashes must exist.
|
|
|
|
9. Runtime representation
|
|
Suggested JS representation, but not normative.
|
|
|
|
10. Reduction semantics
|
|
The six Tree Calculus apply rules.
|
|
|
|
11. Codecs for v1
|
|
Raw tree required.
|
|
Maybe string/bool optional or experimental.
|
|
|
|
12. Required error cases
|
|
Bad magic/version, missing export, hash mismatch, malformed payload, missing child.
|
|
|
|
13. Test fixtures
|
|
List of bundles the implementation must pass.
|