include "types.skill" @abstract FieldLike with Annotations { /** * the comment provided by the user or null */ Comment comment; /** * The type of the field. */ Type type; /** * the skill name */ Identifier name; } Field extends FieldLike { /** * true, iff the field is an auto field */ bool isAuto; } /** * a language custom field */ CustomField extends FieldLike { /** * the name of the language that treats this fields */ string language; CustomFieldOption[] options; /** * the type name that will be used to create a language specific field type */ string typename; } /** * an option passed to a custom field */ CustomFieldOption { string name; string[] arguments; } /** * a view onto a field * * @note some components such as annotations must not be set by views */ FieldView extends FieldLike { /** * the viewed component */ FieldLike target; }