Hi Patrick yes. Lots projects just keep it flat like that. Some project will group stuff in a directory if there is a specific grouping to the modules. Generally it's more specific than a general 'contrib' grouping though.
Also something to think about is the possibility of having independent release cycles for some of the modules. At this stage of the I don't think we need to worry about that complexity.
Generally the final binary distribution does make that distinction. Some organize as:
/bin : start scripts
/lib : the main zoo keeper jar
/lib/extras or /lib/contrib: optional libs that are not required to run ZK