# Common principles ## Language The BIDS specification is written in American English. ## Definitions The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [[RFC2119](https://www.ietf.org/rfc/rfc2119.txt)]. Based on these keywords, we define three requirement levels for specifying data or metadata: REQUIRED, RECOMMENDED, and OPTIONAL. The guiding principles for when particular data is placed under a given requirement level can be loosely described as below: - REQUIRED: Data cannot be be interpreted without this information (or the ambiguity is unacceptably high) - RECOMMENDED: Interpretation/utility would be dramatically improved with this information - OPTIONAL: Users and/or tools might find it useful to have this information Throughout this specification we use a list of terms and abbreviations. To avoid misunderstanding we clarify them here. {{ MACROS___define_common_principles() }} ## Entities An "entity" is an attribute that can be associated with a file, contributing to the identification of that file as a component of its filename in the form of a hyphen-separated key-value pair. Each entity has the following attributes: 1. *Name*: A comprehensive name describing the context of information to be provided via the entity. 1. *Key*: A short string, typically a compression of the entity name, which uniquely identifies the entity when part of a filename. 1. *Value type*: The requisite form of the value that gets specified alongside the key whenever the entity appears in a filename. For each entity, the value is of one of two possible types: 1. *Index*: A non-negative integer, potentially zero-padded for consistent width. 1. *Label*: An alphanumeric (and possibly including `+` character(s)) string. Note that labels MUST not collide when casing is ignored (see [Case collision intolerance](#case-collision-intolerance)). The entity *format* is a string that prescribes how the entity appears within any given filename. For a hypothetical entity with key "`key`", the format can be either "`key-`" or "`key-