As for making this reusable, I think your sketch is pretty spot on, and along the lines of what I was thinking as well. Use map merge semantics to provide a broad outline for how your standard resources are processed and validated and constructed, etc. Then individual resources can slim down and only provide overrides that define how to translate from parameters to entities, validating entites, etc. Would make for a really nice REST experience, but also still leave resources free to change whatever they may want.