# Projects A project contains a `tecs.lua` manifest. Project commands search upward from the working directory, so they also work from a subdirectory. ```lua return { name = "hello", identifier = "com.example.hello", entry = "src/main.tl", assets = "assets", window = { title = "Hello", width = 1280, height = 960 }, } ``` The Lua manifest supports comments and uses the same toolchain as the game. Every field except `name` has a default. `tlconfig.lua` is still written by `tecs new`, because `tl` needs it, but it is not the project marker. The entry file compiles to `build/main.lua` and must return an application. See [getting started](/getting-started#entry-file).