type Task = { "id": Long, "name": String, "state": String, }; type Tasks = Set; entity List in [Application] = { "editors": Team, "name": String, "owner": User, "readers": Team, "tasks": Tasks, }; entity Application; entity User in [Team, Application] = { "joblevel": Long, "location": String, }; entity Team in [Team, Application]; action DeleteList, GetList, UpdateList appliesTo { principal: [User], resource: [List] }; action CreateList, GetLists appliesTo { principal: [User], resource: [Application] }; action CreateTask, UpdateTask, DeleteTask appliesTo { principal: [User], resource: [List] }; action EditShare appliesTo { principal: [User], resource: [List] };