A dictionary definition controls a field's type and base properties. Choice fields constrain values, references point to a target table, and mandatory fields require a value. Read only protects an ordinary editing surface from changes but needs to be considered alongside server rules and access controls.
A choice label is what a user reads. Its stored value can be different in a real instance, so integrations and scripts should use the defined value rather than guessing from a label. Adding a field requires a stable name and a type that fits the data. Avoid storing every value as text just because an import file contains text. When changing a shared dictionary property, test existing records and other forms that use it.