PR2 allows programmers to pull together a variety of sources for a page -- including different formats and types -- and bring them all into the same output format using a set of translators. It also integrates with ToolKit2 so that programmers can create interface components using TK2 and add them to PR2 pages.
PR2 pages are designed using layout classes (subclasses of SLayout) paired with template classes (subclasses of SPageTemplate). A layout object generates the final HTML of an output page, one large chunk (or "meta-slot") at a time. It consults with a template class along the way to see what chunks of the page should show up and in what order.
Scripts providing content to a page pass their input through translators into named "slots" that represent different meaningful pieces of the page (i.e., the title, sidebar, and main content area are slots). At the time of rendering, the PR2 layout object grabs those pieces of content to build the "meta-slots," which, when combined, make up the final output page.