Adrs
One idiomatic Go API; the CLI is the only compatibility boundary
Canonical dynamic tree is the only fact model; typing is a view
Library engines are hermetic by default
The project is "facts"; the CLI binary stays "facter"
Immutable Engine, explicit Snapshot discovery — no memoizing fact state
No Ruby custom-fact DSL; external facts are the whole input contract
No legacy facts; the structured tree is the only fact surface
The binary and identity are "facts"; no facter alias
Facts speaks Facter's input/output contract, not Puppet's runtime behavior
Core fact resolvers are organized by fact category, not one monolith
Schema owns canonical fact spelling
DragonFly and illumos are separate candidate release targets
Facts docs use a dedicated custom subdomain