First and foremost, Kid is an XML template language. With the HTML serializer, it produces good HTML. But, with other serializers, you can also produce XHTML or other XML formats.
The expose function lets you specify a format (which can be "json" or one of Kid's serializers) and a content_type. Let's say you wanted to return RSS, for example. You could set up your expose call like this:
@expose(template="project.templates.rss", format="xml", content_type="text/xml+rss")
The expose function defaults to HTML, but it's easy to change to a different format as needs require.