// Copyright The Monogon Project Authors.
// SPDX-License-Identifier: Apache-2.0

// Package allocs contains allocations of various types of identifiers used in a
// node. By tracking these centrally, we can avoid collisions.
package allocs
