Name Property

The ‘name’ property is special, it is declared for each entity. By default it is a derived property that simply returns the id of the entity (which is also a special property declared for each entity, id:UUID is set automatically). The name can be customized by declaring a real name property:

name :: String

Or derived name property:

name :: String := firstname + lastname

Or by declaring a property as the name using an annotation:

someproperty :: String (name)

The name property is used in input and select template elements to refer to an entity. Example:

application exampleapp
  var u := User{};;
  u := User{};;
  u := User{};;
entity User{} 
entity UserList{
  users -> List<User>
var globalList := UserList{}

define page root(){
  for(u:User in globalList.users){
    output( //there is always a name property
    input(globalList.users) //this will show three UUIDs as options

If the name is not a real property, you cannot create an input for it or assign to it.