Style fixes, synthesize props from the protocol, add docs, add to public header.