Two byte-identical files, two different holdings
Suppose two archives hold bit-identical copies of a model. One records it under Apache-2.0; the other under a custom community license with field-of-use restrictions. They do not hold the same thing. The bytes are half the artifact; the terms are the other half, and unlike the bytes, the terms can differ between holders of the same file — because obligations follow the artifact into whatever you do with it next.
This is why the woodpile treats the license as part of the acquisition record, stored beside the digest: an archive that cannot answer "under what terms do we hold this" is not a library, it is an unsorted drawer.
The license families you will actually meet
- Truly open — Apache-2.0, MIT. Fewest surprises: use, modify, distribute, commercially, with notice/attribution obligations. The closest thing to "just own it".
- Open with copyleft flavor — GPL-family (rare for weights). Redistribution carries source/derivative obligations; read before building products on top.
- Community custom — the LLaMA-style and Gemma-style licenses. Freely available for most uses, but with named conditions: acceptable-use policies, user-count thresholds, trademark restrictions, sometimes regional clauses. These are contracts you accept by using — not open-source licenses, and the difference is load-bearing.
- Research-only. Exactly what it says; commercial use is not licensed. An archive holding research-only weights holds a lab specimen, not a building material — the vessel argument narrows accordingly.
- Unstated. The most expensive kind. No terms means no rights beyond whatever copyright defaults grant; you are holding a question mark with a digest.
Two practical consequences for derivatives: base-model licenses usually attach to fine-tunes of them (a fine-tune of a research-only base is not automatically commercial), and merged models answer to every parent's terms at once: restrictions combine (the strictest clause on each axis governs), and affirmative duties like Apache's attribution notice simply stack.
A reading protocol that scales
You do not need to be a lawyer; you need a fixed reading protocol. At acquisition: (1) identify the license from the card's structured tag, not the prose; (2) if custom, read the actual text once — five minutes, focusing on field-of-use limits, thresholds, and redistribution clauses; (3) record license + version + URL in the acquisition note; (4) for derivatives, walk the base_model chain and record the most restrictive term found. That protocol fits in one log line per artifact and answers every later "can we...?" question without re-reading anything.