# Decisions

- [Value semantics with reference counting, no borrow checker](/adr/0001-value-semantics-with-reference-counting.md)
- [Capabilities are the effect system](/adr/0002-capabilities-are-the-effect-system.md)
- [No user-defined macros](/adr/0003-no-user-defined-macros.md)
- [Call-style constructors instead of brace literals](/adr/0004-call-style-constructors.md)
- [Capitalization is part of the language](/adr/0005-capitalization-is-enforced.md)
- [Trust is a flag on text, and plain String means trusted](/adr/0006-trust-is-a-flag-on-text.md)
- [The interpreter runs the checker's checked program](/adr/0007-interpreter-runs-the-checked-program.md)
- [File access goes through confined capabilities, and Fs only attenuates](/adr/0008-file-access-goes-through-confined-capabilities.md)
- [oska-sys is the only crate allowed to use unsafe](/adr/0009-oska-sys-is-the-only-crate-with-unsafe.md)
- [Packages are git URLs, resolved by minimal version selection](/adr/0010-packages-are-git-urls-resolved-by-minimal-version-selection.md)
- [Oska generates native code itself, with no external toolchain](/adr/0011-oska-generates-native-code-itself.md)
- [TLS, git and crypto are written in Oska](/adr/0012-tls-git-and-crypto-are-written-in-oska.md)
- [Raw system calls are allowed only in std.rt](/adr/0013-system-calls-only-in-std-rt.md)
