A DSL for declarative permissions in Elixir